实验一 DEBUG的使用
一、实验目的
1、熟悉在计算机上建立、汇编、调试和运行汇编语言程序的过程
2、通过实验熟悉DEBUG程序的使用方法,掌握DEBUG命令
二、实验题目
1、编程计算表达式:V←(W-(X+7)*Y+Z)/X,其中X,Y,Z,W均为16位带符号数,分别存入X,Y,Z,W单元中,计算上面表达式并把运算结果存入V存储单元中。
①在DEBUG下运行、调试该程序。
②用DEBUG中的E命令修改内存单元内容。
③用DEBUG中的A命令修改指令。
④用DEBUG中的D命令显示运算表达式的结果。
2、编写程序,把从键盘上输入的小写字母转换成大写字母显示出来
①用DEBUG的G、T命令执行指令
三、程序源代码
1、data segment
x dw 0003h
y dw 0003h
z dw 000ah
w dw 0032h
v dw ?
data ends
code segment
assume ds:data, cs:code
start:mov ax, data
mov ds,ax
mov ax,x
add ax, 7
imul y
mov cx,ax
mov bx,dx
mov ax,w
cwd
sub ax,cx
sbb dx,bx
mov cx, ax
mov bx,dx
mov ax,z
cwd
add ax.cx
adc dx, bx
idiv x
mov v,ax
mov v+2,dx
mov ah, 4ch
int 21h
Code ends
End start
2、code segment
assume cs:code
start:mov ah,01h
int 21h
sub al,32
mov dl,al
mov ah,02h
int 21h
mov ah,4ch
int 21h
Code ends
End start
四、程序运行结果
五、出现的问题及注意事项
1**、test.asm(55): warning A4085: End of file, no END directive**
说明:源程序中缺乏模块结束伪指令END。
修改:整个源程序最后增加模块结束伪指令END。
2**、test.asm(6): error A2049: Illegal use of register**
说明:此错误信息为test.asm中第6行出错,查看该指令,是由于将两操作数之间的“,”号错为“.”号而出错。另外一种情况,如MOV AL, DL+20H,则是源操作数为非法格式。
修改:按照汇编指令的规定格式重新编写。
3**、缺少.exe文件,运行不了masm命令**
在当前文件夹下添加百度下载的masm.exe文件
4**、缺少.exe文件