您好,欢迎来到宝玛科技网。
搜索
您的当前位置:首页汇编语言程序设计报告实验1

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

来源:宝玛科技网


西安郵電學院

汇编语言程序设计报告

一. 设计目的

熟悉Emu8086并掌握其用法;理解8086的寻址方式,熟悉8086指令系统的常用指令,了解8086汇编语言程序的格式和上机过程,掌握顺序程序设计方法。 二. 设计内容

 假设在数据段X_SEG、附加段Y_SEG和堆栈段Z_SEG中分别定义了字变

量X、Y和Z,试编制一个程序计算X←X+Y+Z。

 写一个完整的程序放在代码段C_SEG中,要求把数据段D_SEG中的

AUGEND和附加段E_SEG中的ADDEND相加,并把结果存放在D_SEG段中的SUM中。其中,AUGEND、ADDEND和SUM均为双精度数,AUGEND赋值为99251,ADDEND赋值为-15962

三.详细设计

重点设计及编码。

1、x_seg segment ;定义数据段 x dw 10H x_seg ends

y_seg segment ;定义附加段 y dw 11H y_seg ends

z_seg segment stack ;定义堆栈段 z dw 12H z_seg ends

code_seg segment ;代码段

assume cs:code_seg,ds:x_seg,es:y_seg,ss:z_seg start:

mov ax,x_seg ; 将数据段放入ds

mov ds,ax

mov ax,y_seg ;将附加段放入es

mov es,ax

mov ax,z_seg ;将堆栈段放入ss mov ss,ax

mov ax,x

add ax,es:y ;计算x+y,并把结果放入ax add ax,ss:z ;计算x+y+z, 并把结果放入ax mov x,ax ;;把x+y+z的结果放入x

MOV BX, x ;打印结果 MOV CH,4 MOV DH,1 AA:

MOV CL,4 ROL BX,CL MOV AL,BL

AND AL,0fH ADD AL,30H CMP AL,3AH JL PRINT ADD AL,07H PRINT:

MOV DL,AL MOV AH,2 INT 21H DEC CH JNZ AA

mov ah,4ch ;返回dos int 21h code_seg ends end start

2、D_SEG segment ;定义数据段 AUGEND dd 99251 SUM dd ? D_SEG ends

E_SEG segment ;定义附加段 ADDEND dd -15962 E_SEG ends

C_SEG segment ;代码段

assume cs:C_SEG,ds:D_SEG,es:E_SEG start

mov ax,D_SEG mov ds,ax

mov ax,E_SEG mov es,ax

mov ax,word ptr [AUGEND] ;取AUGEND的低16位放入ax add ax,word ptr es:[ADDEND] ;取ADDEND的低16位和AUGEND

的低16位相加

mov dx,word ptr [AUGEND+2] ;取AUGEND的高16位放入dx adc dx,word ptr es:[ADDEND+2] ;取ADDEND的高16位和AUGEND

的高16位相加,如低16为有进位,加上进位

mov word ptr [SUM],ax ;相加和的低16为放入[SUM]的低16位 mov word ptr [SUM+2],dx ;相加和的高16为放入[SUM]的高16位 MOV CH,4 ;打印 MOV DH,1 AA:

MOV CL,4

ROL BX,CL MOV AL,BL AND AL,0fH ADD AL,30H CMP AL,3AH JL PRINT ADD AL,07H PRINT: MOV DL,AL MOV AH,2 INT 21H DEC CH JNZ AA

MOV BX,WORD PTR [SUM] MOV CH,4 DEC DH JZ AA

mov ah,4CH ;返回dos int 21H C_SEG ends

end start

四.测试数据及运行结果

1、点击Single Step单步运行程序,查看执行结果

运行结果如图:

2、使用masm对程序进行汇编:

使用link命令生成可执行文件:

执行1_2.exe程序,结果如下:

五.调试情况,设计技巧及体会

1.对自己的设计进行评价,指出合理和不足之处,提出改进方案; 2.对设计及调试过程的心得体会。

这是我们第一次自学一门语言,汇编语言是低级语言,和以前学的高级语言很不相同,在学习的过程中遇到很多问题,编程序也不知道从哪里入手,后来看汇编教程,在网上查一些资料,通过上机调试,一步步运行出了结果。第一次程序比较简单,但是在编程的过程中还是遇到很多问题,比如打印结果的过程, 刚开始的代码就打印出错。通过逐步调试,一步步打印出结果 。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baomayou.com 版权所有 赣ICP备2024042794号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务