微机原理程序设计考题

微机原理程序设计考题

ID:6593291

大小:34.50 KB

页数:4页

时间:2018-01-19

微机原理程序设计考题_第1页
微机原理程序设计考题_第2页
微机原理程序设计考题_第3页
微机原理程序设计考题_第4页
资源描述:

《微机原理程序设计考题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一.两个多位十进制数相加将两个多位十进制数相加,要求加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。分析:整个程序分为4个部分:显示加数、转换、相加、输出结果。我们可以分别用子程序来完成各个部分的功能。1. 显示加数。可以利用DOS功能的显示单个字符的功能(02H),在主程序中让SI寄存器间指需要显示的内容。注意:在内存中存放的顺序是低位在前,而显示的时候要高位在前。子程序如下:DISPLAYPROC                    MOV C

2、X,5NEXT:       MOV  DL,  [SI]      ;取要显示的字符                    MOV   AH,02H                    INT     21H                    DECSI                    LOOP NEXT                    RETDISPLAY   ENDP2.转换。转换的目的是将以ASCII码形式表示的各位变成实际的大小。也就是将ASCII码的形式转换为BCD码的形式,一个字节表示一

3、位。在主程序中让SI寄存器间指需要显示的内容。由于加数都是十进制的,所以只有数字0~9,因此只要让每个字符减去30H就得到了相应位的大小。子程序如下:CHANGE PROC                           ;转换子程序                     MOV  CX,5       ;取字符串长度放CX中 NEXT1:      MOV  AL,[SI]                               SUB   AL, 30H                     MOV [

4、SI],AL                     INC SI                     LOOP NEXT1                     RETCHANGE  ENDP3.加法。可以利用带进位的加法ADC按位相加,再进行十进制调整。注意从最低位开始加起。在主程序中让SI间指被加数,DI间指加数。子程序如下:ADDC PROC                 CLC                      ;清进位位                  MOVCX,5           

5、;设置循环次数    P1:        MOV AL,[SI]                  ADC AL,[DI]                  AAA                  MOV[SI],AL          ;保存结果                   INCSI                   INCDI                   LOOPP1                 RETADDC  ENDP4.显示结果。结果在内存中是以BCD码的形式存放,在显示之前需要先

6、转换成ASCII码,直接加上30H就可以,和显示加数一样,还是单个字符显示。注意先显示最高位.子程序如下:RESULT PROC                   MOVCX,5                    LEA SI,[data1+4]    P2:          MOV  BL,  [SI]                    ADD   BL,30H                    MOV   DL,BL                    MOV   AH,02H          

7、          INT     21H                    DECSI                    LOOPP2                    RETRESULT  ENDP5.主程序。在主程序中要定义数据段用以存放加数和结果;完成程序的初始化;调用各个子程序;等等。主程序如下:DATASEGMENTSTR1 DB 0DH,0AH,‘$‘      ;回车换行data1 DB  32H,34H,35H,36H,38H     ;被加数86542data2 DB  35H,38H,

8、34H,32H,31H      ;加数12485code    SEGMENT            ASSUME CS:CODE,DS:DATAstart:    MOV  AX, DATA      ;置缓冲区地址于DS:DX             MOV  DS, AX                   LEA SI,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。