内蒙古工业大学微型计算机原理及应用汇编程序实验答案.doc

上传人:坚持 文档编号:2100783 上传时间:2019-04-25 格式:DOC 页数:32 大小:122KB
下载 相关 举报
内蒙古工业大学微型计算机原理及应用汇编程序实验答案.doc_第1页
第1页 / 共32页
内蒙古工业大学微型计算机原理及应用汇编程序实验答案.doc_第2页
第2页 / 共32页
内蒙古工业大学微型计算机原理及应用汇编程序实验答案.doc_第3页
第3页 / 共32页
内蒙古工业大学微型计算机原理及应用汇编程序实验答案.doc_第4页
第4页 / 共32页
内蒙古工业大学微型计算机原理及应用汇编程序实验答案.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、内蒙古工业大学1内蒙古工业大学 微型计算机原理及应用实验参考汇编程序实验 01A将 FFFFH 送到 AX,BX,CX,DX,SI,DI,BP 寄存器程序如下:CODE SEGMENTASSUME CS:CODESTART PROC FARSTT:PUSH DSSUB AX,AXPUSH AX;=MOV AX,0FFFFHMOV BX,AXMOV CX,AXMOV DX,AXMOV SI,AXMOV DI,AXMOV BP,AX;=RETSTART ENDPCODE ENDSEND STT实验 01B将 FFH 送到内存 1000H,1001H ,1002H,1003H,1004H 单元中程序

2、如下:DATA SEGMENTORG 1000HH1 DB 5 DUP(?)DATA ENDS内蒙古工业大学2CODE SEGMENTASSUME CS:CODE,DS:DATASTART PROC FARSTT:PUSH DSSUB AX,AXPUSH AX;=MOV AL,0FFHMOV DI,1000HMOV CX,5 ;循环 5 次LP1:MOV DI,AL ;FF 放入 1000H-1004H 中INC DIDEC CXJNZ LP1;=RETSTART ENDPCODE ENDSEND STT实验 02A编写 一个加法程序,在数据段偏移地址 1000H 处开始,存放有两个 3 字节

3、长的数据(高位对应高地址,低位对应低地址),求这两数据(十六进制数)的和,并将结 果放在两数据之后,利用 DEBUG 调试程序,并求解:CCBBAAH+223344H=?CCBBAA+554433H=?程序如下:DATA SEGMENTORG 1000HH1 DB 10 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART PROC FARSTT:PUSH DSSUB AX,AX内蒙古工业大学3PUSH AXMov ax,dsegMov ds,ax;=MOV SI,1000H;不带最高位进位的全加器MOV DI,1003HMOV BX,1

4、006HMOV CX,3CLCAA: MOV AL,SIADC AL,DIMOV BX,ALPUSHF;保护 FR,这里其实没有必要,因为 INC 不会产生进位INC SIINC DIINC BXPOPFLOOP AAMOV DL,0 ;最高位进位ADC DL,0MOV DI,1009HMOV DI,DL;=RETSTART ENDPCODE ENDSEND STT实验 02B用串传送指令把 A 程序的数据块(被加数、加数、和)偏移地址 1000H 开始的区域传递到同一数据段的偏移地址为 1010H 开始的区域,并利用 DEBUG 查看运行结果程序如下:内蒙古工业大学4DATA SEGMENT

5、ORG 1000HH1 DB 20 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART PROC FARSTT:PUSH DSSUB AX,AXPUSH AX;=MOV AX,DS ;使 ES 段地址与 DS 相同MOV ES,AXMOV SI,1000H;不带最高位进位的全加器MOV DI,1003HMOV BX,1006HMOV CX,3CLCAA: MOV AL,SIADC AL,DIMOV BX,ALPUSHF;保护 FR,这里其实没有必要,因为 INC 不会产生进位INC SIINC DIINC BXPOPFLOOP AAMO

6、V DL,0 ;最高位进位ADC DL,0MOV DI,1009HMOV DI,DLMOV SI,1000H ;串传送内蒙古工业大学5MOV DI,1010HMOV CX,5CLDREP MOVSW ;一次传送一个字;=RETSTART ENDPCODE ENDSEND STT实验 02C,选作编写一个两位十进制数加法程序,当从键盘上输入:n1n2+n3n4 则在 CRT 上显示n1n2+n3n4=n5n6程序如下:DATA SEGMENTH1 DB “The addends all must be two figures, insufficient adds 0 in front.“,13,

7、10,$DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART PROC FARSTT:PUSH DSSUB AX,AXPUSH AX;=MOV AX,DATAMOV DS,AXLEA DX,H1 ;打印注释:加数和被加数都必须为两位数,不够的前面补 0MOV AH,09HINT 21HSUB CX,CX ;CX 清零SUB DX,DX ;DX 清零CLC ;清 CF内蒙古工业大学6MOV AH,1 ;输入第 1 个数INT 21HMOV CH,AL ;放入 CHSUB CH,30H ;ASCII 码调整INT 21H ;输入第 2 个数MOV CL,

8、AL ;放入 CLSUB CL,30H ;ASCII 码调整MOV AH,2 ;打印加号MOV DL,2BHINT 21HMOV AH,1 ;输入第 3 个数INT 21HMOV DH,AL ;放入 DHSUB DH,30H ;ASCII 码调整INT 21H ;输入第 4 个数MOV DL,AL ;放入 DLSUB DL,30H ;ASCII 码调整ADD CL,DL ;ASCII 码个位加法CMP CL,10;比较个位数结果是否大于 10JNC AA ;大于等于 10 则跳至 AAADD CH,DH;个位不向十位进位的十位加法JMP BBAA: ADD CH,DH ;个位向十位有进位的十位

9、加法ADD CH,1SUB CL,10BB: MOV DL,3DH ;打印等号内蒙古工业大学7MOV AH,2INT 21HCMP CH,10 ;比较十位数结果是否大于 10JNC CCMOV DL,0 ;打印十位不向百位进位的百位 =0INT 21HJMP CCCCC: MOV DL,31H ;打印十位向百位进位的百位=1INT 21HSUB CH,10CCC:ADD CH,30H ;ASCII 码调整MOV DL,CH ;打印结果中的十位INT 21HADD CL,30H ;ASCII 码调整MOV DL,CL ;打印结果中的个位INT 21HMOV AH,1 ;暂停INT 21H;=RE

10、TSTART ENDPCODE ENDSEND STT实验 03A在数据段偏移地址 0100H 处开始,存放 0-9 的平方值(构成一个表格),任给一个自然数M 在 0110H 单元中(0 to quit.“,13,10,$内蒙古工业大学10ERR DB 13,10,“The input number must be a HEX (0F).“,13,10,$DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART PROC FARSTT:PUSH DSSUB AX,AXPUSH AX;=MOV AX,DATAMOV DS,AXLEA DX,TIP ;打印 TIP 信息MOV AH,09HINT 21HBEGIN:MOV DL,13 ;打印换行MOV AH,2INT 21HMOV DL,10 ;打印回行首INT 21HMOV AH,1 ;等待从键盘输入INT 21HMOV SI,OFFSET H2 ;保护输入MOV SI,ALCMP AL,27 ;如果按下 键,跳至 QUITJZ QUITCALL DISPLAY0 ;调用 DISPLAY0 子程序CALL ASCII2HEX ;调用 ASCII2HEX 子程序

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。