- 4
- 0
- 约1.52千字
- 约 3页
- 2023-09-13 发布于湖北
- 举报
实验四 分支程序设计实验
学生姓名: 何茂杰 学 号: 2010305104 专业班级:计算机本科一班
指导老师:文远熔 实验日期: 实验成绩:
实验目的
掌握分支程序的设计方法;
掌握利用DEBUG修改参数、检查结果的方法;
熟悉汇编语言源程序的编辑、汇编、连接及调试过程。
实验内容
p181,例5.10
把x的绝对值赋给y,x为一个四字节有符号数。
实验环境
PC微机
DOS操作系统或 Windows 操作系统
实验要求
画出两个程序的流程图,若要独立编写程序,应列出相应的程序清单。
说明本实验是如何利用DEBUG进行调试的。
主要实验步骤
跳跃表法可以使程序根据不同的条件转移到多个程序分支中去。
步骤;
第一步:定义所要使用的数据段,并分别定义是字还是字节。
第二步:对所要使用寄存器进行压栈处理。
第三步:书写子程序,即寄存器中哪一位为1(从低位到高位)把程序转移到8个不同的程序分支中去。
第四步:测试结果。
对.EXE文件进行调试运行。
用DEBUG调试运行,学会修改AL内容的方法;
对DSPKEY.EXE键入不同的字符,分别进行调试;
在MS-DOS下运行这两个.EXE文件。
六.实验结果及测试
子程序:
cmp al, 0 ;AL为逻辑尺
je continue
lea bx, branch_table
L: shr al, 1 ;逻辑右移
jnc add1
jmp word ptr[bx] ;段内间接转移
add1: add bx, type branch_table ;add bx,2
jmp L
七.心得体会
该实验让我了解用变址寻址方式实现跳跃表法
源代码:
Brand_addresses segmengt
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
branch_addresses ends
procedure_select segment
main proc far
assume cs: procedure_select ,ds:branch_addresses
start:
push ds
sub bx,bx
push bx
mov bx,branch_addresses
mov ds,bx
cmp al,0
je continue_main_line
mov si,0
l:
shr al,1
jnb not_yet
jmp branch_table[si]
not_yet:add
si,type branch_table
jmp l
continue_main_line:
routine_1:
routine_2:
ret
main endp
procedure_select ends
end start
您可能关注的文档
- 财务会计课程实验报告.doc
- 电子商务物流实验报告.doc
- 多媒体技术实验报告.doc
- 虚拟仪器实验报告实验五.doc
- 8255并行接口实验.doc
- vb实验报告完整版.doc
- 《用冰取火》教学设计.doc
- 运筹学实验报告_4.doc
- 筛分试验报告.doc
- 软件技术基础上机实验报告.doc
- 全过程工程管理造价咨询工程监理项目服务方案投标方案(技术部分).doc
- 招标代理服务投标技术服务方案(技术方案).doc
- AI大模型与AIGC技术在公安领域的应用解决方案(99页 PPT).pptx
- 工业4.0智能制造数字工厂规划方案.pptx
- 树立社会主义核心价值观.docx
- 三年(2023-2025)中考历史真题分类汇编(全国)专题21 科技文化与社会生活(解析版).docx
- 2025年中考道德与法治真题完全解读(吉林卷).pdf
- 2025年中考道德与法治真题完全解读(安徽卷).pdf
- 三年(2023-2025)中考历史真题分类汇编(全国)专题14 人民解放战争(解析版).pdf
- 三年(2023-2025)广东中考历史真题分类汇编:专题03 中国近代史(八年级上册)(解析版).docx
原创力文档

文档评论(0)