汇编实验报告—山东大学

发布时间 : 星期一 文章汇编实验报告—山东大学更新完毕开始阅读

实验一 熟悉汇编环境及调试命令

内容和要求: (1)选取教科书中典型例题(完整程序),用编辑软件在PC机中形成汇编源程序*.ASM文件,然后编译、连接,生成目标文件和可执行文件。

(2)用DEBUG程序进行调试,熟悉动态调试环境和常用命令。 目的:

掌握用编辑软件编辑程序文本的方法;在DOS环境下,熟练掌握用MASM5.0宏汇编程序对ASM文件进行编译、连接等操作步骤;熟悉并掌握用DEBUG调试程序。 实验程序

DATAS SEGMENT

one db 20 dup(32),1,'WELCOME 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,存盘操作。

实验总结:

1. 通过实验,了解了程序书写,熟悉了MASM环境,编译和运行的方法,对汇编有了初步

认识。

2. 掌握了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 21h ;显示加法标志 mov ah,9

mov dx,offset tw3 int 21h ;

;以下为加法过程

MOV DI,OFFSET buff+2 MOV SI,OFFSET buf+2 xor dx,dx xor ax,ax

mov dl,ds:[di-1] mov al,ds:[si-1] add di,dx add si,ax mov cx,0

mov ds:[di],cx mov ds:[si],cx push ax push dx

MOV DI,OFFSET buff+2 MOV SI,OFFSET buf+2 pop dx cmp dl,1 je tep2 mov cx,dx dec cx tep1:

mov dx,cx test1:

联系合同范文客服:xxxxx#qq.com(#替换为@)