实验九分支程序的设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验九 分支程序的设计 一、实验目的:掌握分支程序设计的方法,学会调试各种程序分支。 二、实验内容: 根据AL寄存器中哪一位为1(从低位到高位)把程序转移到8个不同的程序分支中去。 三、实验设备:IBM PC机,DOS或WINDOWS, MASM程序,LINK程序 四、实验原理: 分支程序结构可以有两种形式,它们分别相当于高级语言中的IF-THEN-ELSE语句和CASE语句,适用于要求根据不同条件做不同处理的情况。IF-THEN-ELSE语句可以引出两个分支,CASE语句则可以引出多个分支。它们的共同点是:运行方向是向前的,在某一种特定条件下,只能执行多个分支中的一个分支。本实验可用CASE结构来实现,跳跃表法能很好的解决这个问题。下面是用变址寻址方式实现的跳跃表法,也可用寄存器间接和基址变址方式来实现。 开始 开始 初始化逻辑尺 初始化逻辑尺: 0101 0110 初始化地址表序号i =0 , 让BX指向branch_table 首地址 TEST_RULER: Y (AL) TEST_RULER: Y (AL)=0?) N N exit: (AL)逻辑右移1位 exit: (AL)逻辑右移1位?CF标志 结束 Choice_branch: N Choice_branch: N (CF)=0?? Routine7 Routine2Y Routine1 Routine7 Routine2 Y Routine1 第7分支 第7分支 显示 ‘7’ 第1分支 显示 ‘1’ 第0分支 显示 ‘0’ Inc_ i: Inc_ i: 修改地址表序号i++ 修改地址表序号i++ 源程序 data segment branch_table dw routine_0,routine_1,routine_2,routine_3 dw routine_4,routine_5,routine_6,routine_7 data ends code segment main PROC far assume cs: code, ds: data start: push ds sub ax,ax push ax mov ax,data mov ds,ax mov al mov si,0 mov bx, offset branch_table; lea bx,brach_table test_ruler: TEST al,0FFH jz exit SHR al, 1 JC choice_branch inc_i: add si,2 jmp test_ruler exit: ret choice_branch: jmp word ptr [bx+si] routine_0: push ax mov dl,0; mov ah,2 int 21h pop ax jmp inc_i routine_1: push ax mov dl,1; mov ah,2 int 21h pop ax jmp inc_i routine_2: push ax mov dl,2; mov ah,2 int 21h pop ax jmp inc_i routine_3: push ax mov dl,3; mov ah,2 int 21h pop ax jmp inc_i routine_4: push ax mov dl,4; mov ah,2 int 21h pop ax jmp inc_i routine_7: push ax mov dl,7; mov ah,2 int 21h pop ax jmp inc_i main ENDP code ends end start 五。实验过程 1.用记事本编辑源程序代码,保存为sy9.asm文件 2.汇编翻译,连接 汇编、连接,按照按默认回答,获得sy9.exe文件 3.调试运行sy9.exe (1)观察代码段,数据段在内存中的地址范

文档评论(0)

喵咪147 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档