新一代汇编语言程序设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
新一代汇编语言程序设计的基本方法顺序程序设计分支程序设计

DATA SEGMENT W DW 00FFH ;定义字数据 N DB ? ;定义结果保存单元 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA ;初始化DS MOV DS,AX MOV CL,0 ;计数器清零 MOV AX,W ;取数到AX AA:AND AX,AX ;逻辑与,判AX=0? JZ CC ;结果为0转移到CC SHL AX,1 ;逻辑左移1位 JNC BB ;无进位转BB INC CL ;有“1”则计数 BB:JMP AA ;无条件转AA CC:MOV N,CL ;结果送N单元 MOV AH,4CH ;返回DOS INT 21H CODE ENDS END START ;汇编结束 实验内容 1、设X,Y为存放在X,Y单元中的16位操作数,判断XY,若成立执行X-Y, 否则计算|X-Y|,并把结果存入RESULT中 2、假设有100个16位无符号数存放在数据段,把它们的和求出来,作为32位数存在DX和AX中 3、数据段有一个首地址为ARRAY的N字数组,要求测试其中正数、0、负数的个数,正数个数放在DI中,0的个数放在SI中,并根据N-(DI)-(SI)求得负数的个数放在AX中。 用无条件转移指令+跳转表实现程序分支 跳转表便于实现多路分支。 设有若干段分支程序,将每段分支程序的入口地址(也称跳转地址)组成一个连续存放在内存中的表,称为跳转表。 若有n个产品,将这n个产品的加工处理程序(分支程序)入口地址(分别为BR0,BR1,…,BRn-1)组成跳转表,可就利用跳转表取得BR0,BR1,…,BRn-1,转移到相应的分支程序去处理产品。 由表地址就可取得分支程序地址BRn,再将BRn送IP,实现转移。 例: 根据学生成绩评定等级:90~100分的等级为“A”;80~89分的等级为“B”;70~79分的等级为“C”,60~69分的等级为“D”,60分的等级为“E” 。 分析: 0~59 60~69 70~79 80~89 90 ~100 0 1 2 3 4 tab dw br0 , br1 , br2 , br3 , br4 (跳转表) E D C B A (程序见P84 例4-10) 5.4 循环程序设计 根据条件重复执行一段指令就构成了循环程序结构 。 例: MOV AX,0 ;累加求和寄存器清0 MOV BX,OFFSET ARRAY ;数组始址送BX中 MOV CX,50 ;循环控制计数初始化 AGAIN : ADD AX,[BX] ADD BX,2 ;数组地址增2,BX指向下一个元素 DEC CX ;循环控制计数减1 JNZ AGAIN ;计数不为0时继续循环 MOV S,AX ;计数为0时循环结束,和存于S中 将ARRAY数组中的50个数求和,并将和存入字变量S中 。 保证循环正常执行和结束的条件: 正确地初始化循环控制计数和初始条件 1 正确地检测循环条件 2 必须保证能达到循环结束条件 (例如在循环体内有修改循环控制值的指令) 3 指令系统提供了专门用于循环结构的循环控制

文档评论(0)

勤能补拙 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档