实验二分支程序实验.docx
- 文档编号:30731999
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:16
- 大小:1.05MB
实验二分支程序实验.docx
《实验二分支程序实验.docx》由会员分享,可在线阅读,更多相关《实验二分支程序实验.docx(16页珍藏版)》请在冰豆网上搜索。
实验二分支程序实验
实验二分支程序实验
1.实验目的
(1)掌握分支程序的设计方法。
(2)掌握利用DEBUG修改参数、桓公井结果的方法。
(3)掌握汇编语言源程序的编辑、汇编、连接及调试过程。
2.实验内容
(1)编一程序,显示AL寄存器中的两位十六进制数。
(2)编写一程序,判别键盘上输入的字符;若是0~9字符,则显示之;若为A~Z或a~z字符,均显示“c”;若是回车字符
再修改相应程序,使其输入为其它字符时,显示字符“@”。
3.实验准备
(1)编写实验内容要求的两个程序。
(2)写出调试以上程序,即修改程序的参数,检查结果的操作方法。
(3)熟悉源程序汇编、连接命令的使用方法及要回答的内容。
4.实验步骤
(1)用EDIT或其它编辑软件,编写.ASM源程序,例如HEXASC.ASM及DSPKEY.ASM。
(2)对其进行汇编及连接,产生.EXE文件。
(3)对.EXE文件进行调试运行。
①用DEBUG调试运行,学会修改AL内容的方法。
②对DSPKEY.EXE侵入不同的字符,分别进行调试。
③在MS-DOS下运行这两个.EXE文件。
5.实验报告要求
(1)画出两个程序的流程图,若要独立编写程序,应开出相应的程序清单。
(2)说明本实验是如何利用DEBUG进行调试的。
6.参考程序清单
(1)显示AL中两位十六进制数程序:
:
DISPHEX.ASM
CODESEGMENT
ASSUMECS:
CODE
START:
MOVAL,3EH;AL=3EH
MOVDL,AL;DL=3EH
MOVBL,AL;BL=3EH,对AL进行保护
MOVCL,4;CL=04H
SHRDL,CL;DL=03H
CMPDL,9;DL与09H进行比较
JBENEXT1;若DL小于等于09H,则转NEXT1执行,否则顺序执行
ADDDL,7;DL=DL+7
NEXT1:
ADDDL,30H;DL=33H
MOVAH,2;AH=02H
INT21H;显示高位ASCII码
MOVDL,BL;DL=3EH
ANDDL,0FH;DL=0EH
CMPDL,9;DL与09H进行比较
JBENEXT2;若DL小于等于09H,则转NEXT2执行,否则顺序执行
ADDDL,7;DL=0FH
NEXT2:
ADDDL,30H;DL=45H
MOVAH,2;AH=02H
INT21H;显示低位ASCII码
MOVAH,4CH
INT21H;返回DOS
CODEENDS
ENDSTART
✧其结构流程图传递如下所示:
Y
N
N
Y
Y
Y
N
N
实验截图如下:
Ø用R命令查看各寄存器内容如下:
Ø反汇编如下图所示:
Ø单步执行如下所示:
ØG命令运行结果:
●由其结果可知,该程序出现了问题,原AL中存的数据为“3E”,但最终结果变成了“33”,结果明显出错。
在原程序中应该增加另一个寄存器BL对AL进行保护。
MOVBL,AL
下面的程序中用到AL的,就用BL进行替换。
Ø修改后再汇编,连接,运行。
用G命令执行结果如下:
(2)显示键入字符程序:
;DISPKEY.ASM
CODESEGMENT
ASSUMECS:
CODE
START:
MOVAH,1;AH=01H
INT21H;等待键入字符
CMPAL,0DH;是否是回车符
JZDONE;是则转DONE退出程序
CMPAL,’0’;AL与字符‘0’进行比较
JBNEXT;若AL<‘0’,则转NEXT,转到START重新输入字符
CMPAL,’9’;AL与字符‘9’进行比较
JACHRUP;若AL>‘9’,则转CHRUP,判断AL内容是否是英文字母
MOVDL,AL;DL=AL
MOVAH,2;AH=02H
INT21H;显示0~9
JMPSTART;无条件转移到START,重新输入字符
CHRUP:
CMPAL,41H;比较AL与41H(即字符A)的大小
JBNEXT;若AL<41H,则转NEXT,转到START重新输入字符
CMPAL,5AH;比较AL与5AH(即字符Z)的大小
JACHRDN;若AL>5AH,则转CHRDN执行
DISPC:
MOVDL,’C’;DL=’C’
MOVAH,2;AH=02H
INT21H;显示字符“C”
NEXT:
JMPSTART;无条件转移到START,重新输入字符
CHRDN:
CMPAL,61H;AL与61H(即字符a)进行比较
JBNEXT;若AL<61H,则转NEXT,转到START重新输入字符
CMPAL,7AH;AL与7AH(即字符z)进行比较
JANEXT;若AL<7AH,则转NEXT,转到START重新输入字符
JMPDISPC;无条件转移到DISPC,继续执行
DONE:
MOVAH,4CH;AH=4CH
INT21H;返回DOS
CODEENDS
ENDSTART
✧其结构流程图传递如下所示:
Y
N
Y
N
Y
N
Y
N
N
Y
N
Y
Y
N
✧实验截图如下:
Ø用R命令查看各寄存器内容如下:
Ø反汇编结果如下:
Ø单步执行如下所示:
●输入字母时:
●输入数字时:
Ø输入结果为如下所示:
分析:
●修改其程序,增加其功能,使输入其它字符时也显示出字符“@”。
改为如下:
●修改之后,再经过汇编,连接及运行,可得其结果如下所示:
分析:
指导教师意见:
签名:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验二 分支程序实验 实验 分支 程序