用汇编语言制作一个加法器

2020-05-01 10:34

用汇编语言制作一个加法器

一、实验目的

1、掌握条件分支的汇编程序设计方法。

2、熟悉汇编软件,掌握汇编程序的编写和调试方法。 3、掌握数据和字符的显示方法。

二、实验原理

在数据段上存放两个8位的非压缩BCD码数据X、Y,如下表:

X Y CARRY RESULT 09H 08H 把这两个BCD码相加,结果以ASCII码方式存放在RESULT中。如果有进位,CARRY=31H,否则CARRY=30H(31H为“1”的ASCII码,30H为“0”的ASCII码)。并在屏幕上显示结果。

提示,字符输出程序: MOV DL, “待输出的ASCII码” MOV AH, 2 INT 21H

如何取数据: MOV SI, OFFSET X MOV AL, [SI]

取数据(被加数和加数)相加,调整是否有进位是保存31H到carry否保存30H到carry调整的结果转为ASCII码保存到result拿出carry,显示拿出result,显示

三、实验内容

代码内容如下:

DATAS SEGMENT X DB 09H Y DB 08H L DB 00H CARRY DB ?

RESULT DB 10,13,'8+9=',?,?,10,13,10,'CARRY=',?,?,?,'$' DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS;,SS:STACKS START:

MOV AX,DATAS; MOV DS,AX; LEA SI,X; LEA DI,Y; MOV AL,[SI]; ADC AL,[DI];

MOV RESULT, AL;

JC DONE

MOV [CARRY],30H

JMP SHOW

DONE:MOV [CARRY],31H SHOW:

MOV BH,[CARRY] MOV [RESULT+17],BH

MOV AL,[RESULT]; AND AL,0FH; ADD AL,36H;

MOV [RESULT+7],AL; MOV AL,[RESULT]; MOV CL,4; SHR AL,CL; ADD AL, 30H;

MOV [RESULT+6],AL;

LEA DX,RESULT; MOV AH,09H INT 21H;

MOV AH,4CH INT 21H CODES ENDS END START

运行结果:

四、实验总结

本人之前学习过51单片机相关知识,并懂得用C语言写一些程序。对于汇

编语言只能看懂一些。通过对微机的学习、以及本次试验课程,我熟悉了汇编软件,掌握汇编程序的编写和调试方法;掌握了条件分支的汇编程序设计方法;掌握数据、字符和字符串的显示方法和学会了编写一些简单的程序,使我获益菲浅。但感觉还是C语言好用,希望通过深入学习发现汇编语言的魅力,以及深入了解微机这门课程的意义。


用汇编语言制作一个加法器.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:智能终端系统及应用开发

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: