实验九 分支程序的设计.doc_第1页
实验九 分支程序的设计.doc_第2页
实验九 分支程序的设计.doc_第3页
实验九 分支程序的设计.doc_第4页
实验九 分支程序的设计.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验九 分支程序的设计一、实验目的:掌握分支程序设计的方法,学会调试各种程序分支。 二、实验内容:根据AL寄存器中哪一位为1(从低位到高位)把程序转移到8个不同的程序分支中去。三、实验设备:IBM PC机,DOS或WINDOWS, MASM程序,LINK程序四、实验原理: 分支程序结构可以有两种形式,它们分别相当于高级语言中的IF-THEN-ELSE语句和CASE语句,适用于要求根据不同条件做不同处理的情况。IF-THEN-ELSE语句可以引出两个分支,CASE语句则可以引出多个分支。它们的共同点是:运行方向是向前的,在某一种特定条件下,只能执行多个分支中的一个分支。本实验可用CASE结构来实现,跳跃表法能很好的解决这个问题。下面是用变址寻址方式实现的跳跃表法,也可用寄存器间接和基址变址方式来实现。开始(AL)= 0101 0110初始化地址表序号i =0 , 让BX指向branch_table 首地址(AL)=0?)结束Y N (AL)逻辑右移1位CF标志(CF)=1?Y 选择走第i分支修改地址表序号i+N A B 第1分支显示 1第2分支显示 2第8分支显示 8A BRoutine1 Routine2Routine8 源程序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_tablelab1: 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,2push axint 21hpop axjmp lab0 routine_3: mov dl,3;mov ah,2push axint 21hpop ax jmp lab0 routine_4: mov dl,4;mov ah,2push axint 21hpop axjmp lab0routine_5: mov dl,5;mov ah,2push axint 21hpop ax jmp lab0routine_6: mov dl,6;mov ah,2push axint 21hpop axjmp lab0routine_7: mov dl,7;mov ah,2push axint 21hpop axjmp lab0routine_8: mov dl,8;mov ah,2push axint 21hpop axjmp lab0 main endp procedure_select ends end start 五。实验过程1.用记事本编辑源程序代码,保存为sy9.asm文件2.汇编翻译,连接汇编、连接,按照按默认回答,获得sy9.exe文件3.调试运行sy9.exe(1)观察代码段,数据段在内存中的地址范围(用U命令结合源代码,观察段名称被翻译成的立即数)(2) 键入debug sy9.exe,进入调试状态。在调试提示符下,用U命令,查看机器代码在内存中的位置.(3)观察每一次循环到 jmpbx+si时,CF的值si 的值,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论