文档介绍:实验一熟悉汇编环境及调试命令
内容和要求:
(1)选取教科书中典型例题(完整程序),用编辑软件在PC机中形成汇编源程序*.ASM文件,然后编译、连接,生成目标文件和可执行文件。
(2)用DEBUG程序进行调试,熟悉动态调试环境和常用命令。
目的:
掌握用编辑软件编辑程序文本的方法;在DOS环境下,、连接等操作步骤;熟悉并掌握用DEBUG调试程序。
实验程序
DATAS SEGMENT
one db 20 dup(32),1,'E YOU!',7,13,10
count equ $-one
DATAS ENDS
STACKS SEGMENT stack'stack'
stap db 256 dup(?)
top equ this word
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov ax, seg stacks;此处输入代码段代码
mov ss,ax
mov sp,offset top
mov si,offset one
mov cx,count
next: mov dl,[si]
mov ah,2
int 21h
inc si
loop next
MOV AH,4CH
INT 21H
CODES ENDS
END START
结果
Debug调试:
输入a,进行逐行汇编,输入c, 比较两内存块,输入d,内存信息以16进制显示;输入e,修改内存指定的字节;输入f,可以预置一段内存; 输入g,执行程序;输入h,制算术运算;输入i,从指定端口地址输入;输入l,读盘;输入m,内存块传送;输入n,置文件名;输入o,从指定端口地址输出;输入q,结束DEBUG调试;输入r,显示和修改寄存器;输入s,查找字节串;输入t,跟踪执行;输入u,反汇编;输入w,存盘操作。
实验总结:
通过实验,了解了程序书写,熟悉了MASM环境,编译和运行的方法,对汇编有了初步认识。
掌握了Debug调试方法,对程序修改有很大帮助,通过练习,熟悉了各调试指令。
实验二多位十进制数相加求和显示
内容和要求:
将两个多位十进制数(如四位)相加,要求被加数、加数以ASCII码形式按顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前)。要求:将相加结果仍以常用十进制数形式显示在屏幕上。
目的:
学习数据传送、加法运算及十进制数(BCD码)运算调整指令的用法;熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序过程,练习分析程序,会查错。
实验程序:
DATA1 SEGMENT
buf db 10
db 0
db 10 dup(0)
sum dw ?
buff db 10
db 0
db 10 dup(0)
sum1 dw ?
tw1 db 'please input the first num:','$'
tw2 db 'please input the second num:','$'
tw3 db 'sum:','$' ;此处输入数据段代码
DATA1 ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATA1,ss:stacks
START:
MOV AX,DATA1
MOV DS,AX
mov ax,stacks
mov ss,ax
pushf
;显示输入a
mov ah,9
mov dx,offset tw1
int 21h
;输入buf
;mov dx,seg buf
;mov ds,dx
mov dx,offset buf
mov ah,0ah
int 21h
;换行
mov ah,2
mov dl,10
int 21h
;换行
mov ah,2
mov dl,10
int 21h
;提示输入b
mov ah,9
mov dx,offset tw2
int 21h
;输入buf
;mov dx,seg buf
;mov ds,dx
mov dx,offset buff
mov ah,0ah
int 21h
;换行
mov ah,2
mov dl,10
int 21h
mov ah,2
mov dl,10
int