文章目录
主要开发环境
DOSBox 0.74-3
以下是本篇文章正文内容,下面案例可供参考
实验一:熟悉汇编程序设计开发调试环境
实验目的
了解汇编语言上机调试的过程;
了解Debug程序在调试程序中的作用;
掌握使用Debug命令调试程序的基本方法;
掌握动态调试程序Debug;
了解各寄存器的功能及内存单元,理解机器寻址方式;
了解基础汇编指令的含义与用法
实验主要内容和步骤
以下给出了几段汇编程序,请在Debug环境中,分别对每段程序使用-a指令进行输入,用-t指令单步运行,并注意观察每条指令的执行结果。
1、 数据传送指令
代码段一:
MOV SP, 00B0 ;SP=?
MOV AX, 8057
MOV BX, 0F79
PUSH AX ;SP=? [SS:SP]=? [SS:(SP+1)]=?
PUSH BX ;SP=? [SS:SP]=? [SS:(SP+1)]=?
PUSH AX ;AX=?
代码段二:
MOV DX, 4652
ADD DX, F0F0
MOV BX, 1000
MOV WORD PTR [BX], A988
ADD WORD PTR [BX], 97F6 ;[1000H]=? [1001H]=?
2、 算术指令
代码段一:
MOV BX, 9548
MOV CX, 28A7
SUB BX, CX ;(BX)=? (CX)=? CF=? ZF=? OF=? SF=?
代码段二:
MOV BX, 6780
NEG BX
代码段三:(无符号数相乘)
MOV AL, B4
MOV BL, 11
MUL BL ;(AX)=? CF=? OF=?
代码段四:(有符号数相乘)
MOV AL, B4
MOV BL, 11
IMUL BL ;(AX)=? CF=? OF=?
代码段五:(无符号数相除)
MOV AX, 400
MOV BL, B4
DIV BL ;(AL)=? (AH)=?
代码段六:(有符号数相除)
MOV AX, 400
MOV BL, B4
IDIV BL ;(AL)=? (AH)=?
代码段七:(DAA指令,完成十进制数28+68=96)
MOV AL, 28
ADD AL, 68 ;(AL)=?
DAA ;(AL)=?
3、 逻辑运算指令
代码段一:下列汇编代码段将寄存器AL内容的0,2,4,6位清零,其余位保持不变,将寄存器BL高4位置1,低4位保持不变,请观察执行结果
MOV AL, 48
AND AL, AA ;(AL)=?
MOV BL, 39
OR BL, F0 ;(BL)=?