网站大量收购闲置独家精品文档,联系QQ:2885784924

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

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

实验九 分支程序的设计 一、实验目的:掌握分支程序设计的方法,学会调试各种程序分支。 二、实验内容:根据AL寄存器中哪一位为1(从低位到高位)把程序转移到8个不同的程序分支中去。 三、实验设备:IBM PC机,DOS或WINDOWS, MASM程序,LINK程序 四、实验原理: 分支程序结构可以有两种形式,它们分别相当于高级语言中的IF-THEN-ELSE语句和CASE语句,适用于要求根据不同条件做不同处理的情况。IF-THEN-ELSE语句可以引出两个分支,CASE语句则可以引出多个分支。它们的共同点是:运行方向是向前的,在某一种特定条件下,只能执行多个分支中的一个分支。本实验可用CASE结构来实现,跳跃表法能很好的解决这个问题。下面是用变址寻址方式实现的跳跃表法,也可用寄存器间接和基址变址方式来实现。 源程序 branch_address segment branch_table dw routine_1 dw routine_2 dw routine_3; dw routine_4; dw routine_5; dw routine_6; dw routine_7; dw routine_8; x EQU 25+36 branch_address ends; procedure_select segment; main proc far; assume cs: procedure_select ,ds: branch_address; start: push ds; sub bx,bx; push bx; mov bx, branch_address mov ds,bx; mov al,56h ;(al)=0101 0110 mov si,0; mov bx, offset branch_table lab1: cmp al,0; je exit shr al,1; jnc lab0 ; jmp [bx+si]; lab0: add si,2 jmp lab1 exit: ret routine_1: mov dl,1; mov ah,2 int 21h jmp lab0 routine_2: mov dl,2; mov ah,2 push ax int 21h pop ax jmp lab0 routine_3: mov dl,3; mov ah,2 push ax int 21h pop ax jmp lab0 routine_4: mov dl,4; mov ah,2 push ax int 21h pop ax jmp lab0 routine_5: mov dl,5; mov ah,2 push ax int 21h pop ax jmp lab0 routine_6: mov dl,6; mov ah,2 push ax int 21h pop ax jmp lab0 routine_7: mov dl,7; mov ah,2 push ax int 21h pop ax jmp lab0 routine_8: mov dl,8; mov ah,2 push ax int 21h pop ax jmp lab0 main endp proced

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档