汇编语言程序设计 实验报告
实验名称:
姓名:
学号:班级:
指导老师:
顺序结构程序设计 孙琳141320105 卓越软件1401 罗辛
一、实验内容
1、编程实现:
首先将FIRST字变量与SECONFD字变量相加,结果存入THIRD1存储字中,然后将FIRST与SECOND两个字变量相乘,结果存入THIRD2开始的两个字中。
提示:FIRST与SECOND都是字变量,因此存放和的THIRD1单元也必须是字变量。而存放积的单元THIRD2必须是双字。
2、编写程序完成下式的计算,其中X、Y、Z和W均为存放32位无符号数的单元地址:
W=Z-(X+6)-(Y-8)
3、编程实现综合算术运算功能:
(V-(X*Y+Z-540))/X
其中,X、Y、Z、V均为16位带符号数,已分别装入X、Y、Z、V单元中,要求上式计算结果的商存入AX,余数存入DX寄存器。
4、编写一个32位无符号数除法的程序。要求将存放在NUM1中的32位无符号数与存放在NUM2中的16位无符号数相除,结果存放在NUM3和NUM4中。根据题目要求,应把存放在数据段内的被除数NUM1定义为32位,除数NUM2定义为16位,商NUM3定义为16位,余数NUM4定义为16位。
提示:
① 数据段定义
② 32位被除数与16位除数相除的程序段
③ 本程序执行结果为:
2A8B7654H÷5ABCH=7809H……25B8H
5、试编写一个程序,要求把BL中的数除以CL中的数,并把其商乘以2,最后的结果存入DX寄存器中。
6、编程计算24,要求将123B0H~123BAH的内存单元定义为数据段
二、实验目的
(1) 掌握汇编程序的基本格式和结构
(2) 掌握顺序结构程序的设计方法
(3) 掌握ADD、ADC、SUB、SBC、MUL、IMUL、DIV、IDIV等算术运算指令。
(4) 掌握各种运算过程中各标志位的变化情况。
三、实验原理
1. 用MASM.EXE汇编源程序产生OBJ目标文件
2. 用LINK.EXE产生EXE可执行文件
3. 用Debug来跟踪一个程序的运行过程
四、实验过程及结果
1、实验源代码如下
assume cs:code,ds:data
data segment
FIRST dw 0123h
SECONFD dw 0456h
THIRD1 dw 0h
THIRD2 dd 0h
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,FIRST
add ax,SECONFD
mov THIRD1,ax
mov ax,FIRST
mul SECONFD
mov word ptr THIRD2,ax
mov word ptr THIRD2+2,dx
mov ax,4c00h
int 21h
code ends
end start
实验部分截图如下
程序开始运行时
FIRST=0123h SECONFD=0456h THIRD1=0h THIRD2=0h
程序结束运行时
THIRD1=FIRST+SECONFD=0579h THIRD2=FIRST*SECONFD=0004EDC2h
2、实验源代码如下:
assume cs:code,ds:data
data segment
X dd 1h
Y dd 9h
Z dd 14h
W dd 0h
a dd 6h
b dd 8h
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,X
mov dx,X+2
add ax,a
add dx,a+2
sub Z,ax
sub Z+2,dx
mov ax,Y
mov dx,Y+2
sub ax,b
sub dx,b+2
sub Z+2,dx
sub Z,ax
mov ax,Z
mov dx,Z+2
mov W,ax
mov W+2,dx
mov ax,4c00h
int 21h
code ends
end start
实验部分截图如下
程序开始运行时
X=1H Y=9H Z=14H
W=0H
程序结束运行时
W=Z-(X+6)
-(Y-8)=CH
3、实验源代码如下: assume cs:code,ds:data data segment
x dw 1h
y dw 0234h
z dw 0345h
v dw 0456h
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,x
imul y
mov cx,ax
mov bx,dx
mov ax,z
cwd
add cx,ax
adc bx,dx
sub cx,540
sbb bx,0
mov ax,v
cwd
sub ax,cx
sbb dx,bx
idiv x
mov ax,4c00h
int 21h
code ends
end start
实验部分截图如下:
程序开始运行时
x =1h y =0234h z=0345h
v =0456h
程序结束运行时
AX=00F9H
DX=0000H
4、源代码如下:
assume cs:code,ds:data
data segment
NUM1 DD 2A8B7654H
NUM2 DW 5ABCH
NUM3 DW 0h
NUM4 DW 0h
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,word ptr NUM1
mov dx,word ptr NUM1+2
div NUM2
mov NUM3,ax
mov NUM4,dx
mov ax,4c00h
int 21h
code ends
end start
实验部分截图如下
程序开始运行时
NUM1 =2A8B7654H NUM2=5ABCH NUM3=0h
NUM4= 0h
程序运行结束时
商NUM3=7809H 余数NUM4=25B8H
5、源代码如下
assume cs:code
code segment
start:
mov bx,000Fh
mov cx,000Dh
mov al,bl
mov ah,0
div cl
mov ah,0
shl ax,1
mov dx,ax
mov ax,4c00h
int 21h
code ends
end start
实验部分截图如下:
BL中的值已经存放在AL中,CL中的值为DH,则最后所得商为1,乘2之后得2,即最后DX中的值为
2H
程序运行结束时
DX中的值为
2H
6、实验源代码如下:
assume cs:code
code segment
start:
mov ax,123BH
mov ds,ax
mov ax,2
add ax,ax
add ax,ax
add ax,ax
mov ax,4c00h
int 21h
code ends
end start
实验部分截图如下:
将段地址123B送到DS中
运行结果如下,AX中得到
2^4=10H
六、实验心得体会
(写出在做实验过程中碰到的问题、解决方法、存在的不足,实验过程中所获得的经验等等)
七、参考文献
www.99jianzhu.com/包含内容:建筑图纸、PDF/word/ppt 流程,表格,案例,最新,免费下载,施工方案、工程书籍、建筑论文、合同表格、标准规范、CAD图纸等内容。