141320105 孙琳

 

汇编语言程序设计 实验报告

实验名称:

姓名:

学号:班级:

指导老师:

顺序结构程序设计 孙琳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图纸等内容。


TOP最近更新内容

    园林史名词解释
    长城小学关爱留守儿童工作制度
  • 上一篇:《家是一座没有课本的校园》新池镇中学 李建锋
  • 下一篇:做好衔接教育 提高教学质量