微型计算机原理与接口技术第四章课后答案
- 格式:pdf
- 大小:273.38 KB
- 文档页数:26
微机原理与接口技术习题参考答案第一章(p20)1、参考答案:冯•诺伊曼计算机的设计思想(EDVAC方案:存储程序通用电子计算机方案):①计算机分为计算器、控制器、存储器、输入和输出装置五个部分;②计算机内采用二进制;③将程序存储在计算机内,简称“程序存储”。
其中第三点是冯•诺依曼计算机设计的精华,所以人们又把冯•诺依曼原理叫做程序存储原理,即程序由指令组成并和数据一起存放在存储器中,机器则按程序指定的逻辑顺序把指令从存储器中读出来并逐条执行,从而自动完成程序描述的处理工作。
冯•诺伊曼计算机主要以运算器和控制器为中心,结构框图如下图所示。
2、参考答案:微处理器就是中央处理器CPU,是计算机的核心,单独的CPU不能构成计算机系统;微型计算机由微处理器、主存储器、I/O接口(注意:不是I/O设备)组成;而微型计算机系统除了包括微型计算机外,还有系统软件(即操作系统)、应用软件、外存储器和I/O设备等。
微型计算机系统结构如下图所示。
3、答案略,见p6~74、答案略,见图2,或教材图1-35、答案略,见p12~136、参考答案:由于8086微处理器的地址总线的宽度为20位,所以它可寻址220=1M字节的存储空间;而PentiumII微处理器的地址总线的宽度为36位,所以它可寻址236=64G字节的存储空间。
7、参考答案:①PCI(Peripheral Component Interconnect:外围设备互联),是Intel公司1992年发布486微处理器时推出的32/64位标准总线,数据传输速率位132MB/s,适用于Pentium微型计算机。
PCI总线是同步且独立于微处理器的具有即插即用(PNP:Plug and play,所谓即插即用,是指当板卡插入系统时,系统会自动对板卡所需资源进行分配,如基地址、中断号等,并自动寻找相应的驱动程序)的特性.PCI总线允许任何微处理器通过桥接口连接到PCI 总线上。
单片机微型计算机原理及接口技术课后习题答案第4章4-2 试述指令MOV A,R0和MOV A,@R0的区别两条指令的目的操作数相同,两条指令的区别在于源操作数来源不同:MOV A,R0 指令的源操作数就是R0寄存器的内容;而MOV A,@R0 指令的源操作数是位于存储器单元内,且存储器单元的地址是R0寄存器的内容。
4-3 试述指令MOV A,20H和MOV A,#20H的区别MOV A,20H 源操作数是直接寻址,20H表示源操作数所在存储器单元的地址。
MOV A,#20H 源操作数是立即数寻址,#20H是立即数,也就是源操作数。
4-4 说明一下指令中源操作数所在的存储器类型。
(1)MOV A,#30H; 立即数#30H,就是源操作数,存在于指令中,所以位于程序存储器。
(2)MOV A,30H; 30H是源操作数所在数据存储单元的地址,所以源操作数位于数据存储器。
(3)MOVC A,@A+DPTR;源操作数是变址寻址, 助记符MOVC表示源操作数位于程序存储器。
(4)MOVX A,@DPTR; 源操作数是寄存器间接寻址, 助记符MOVX表示源操作数位于外部数据存储器。
4-5 判断下列指令书写是否正确:(1)MOV A,B; ✔(2)MOV A,#3000H ; ✘,因为A是8位寄存器,而#3000H是16位数值,没法全部存到A里(3)INC,#20H ; ✘只能INC A/direct/Rn/@Ri/DPTR(4)MOV 5,A ; ✔,注意目的操作数是直接寻址方式,不是立即寻址(5)MOV 30H,40H; ✔(6)MOV B,@DPTR ; ✘,@DPTR寻址用于MOVX指令,不能用于MOV指R(7)CJNE 30H,#80H,NEXT ; ✘,CJNE指令格式只能是CJNE A/Rn/@Ri,#data,rel或CJNE A,direct,rel(8)POP A ; ✘只能是直接寻址方式POP direct,正确的是POP ACC(9)PUSH ACC; ✔(10)SJMP 2000H ; ✘rel的范围是-128~127(用补码表示其值)共256B范围4-6 设ACC=12H,B=64H,SP=60H,30H中存放的是78H,试分析下列程序执行后,ACC、B、30H、SP中的内容分别为多少,并画出堆栈示意图。
《微机原理与接口技术》第四章习题集与解答精品文档习题集解答第五章汇编语言程序设计1.从4000H单元开始定义数据段如下,请画出所定义存储器的分配图。
BUF SEGMENTDAl DW 3456HDA2 DB 2 DUP(7,8)BUF ENDS答:存储器的分配图2.对于习题1的定义,请说明下列每条指令执行后的结果。
1、 MOV AX,SEG DAl2、MOV AX,SEG DA23、MOV BX,OFFSET DAl4、MOV BX,OFFSET DA25、MOV CX,TYPE DAl6、MOV CX,TYPE DA27、MOV DX,LENGTH DAl8、MOV DX,LENGTH DA29、MOV AX,SIZE DAl ‘10、MOV AX,SIZE DA2答:1、(AX)=(DS)2、(AX)=(DS)+23、(BX)=4000H4、(BX)=4002H5、(CX)=26、(CX)=17、(DX)=28、(DX)=49、(AX)=210、(AX)=43.已知数据定义如下,请计算变量PL的值是多少?DATA DB ‘AB’DATAl DB 10 DUP(?)PL EQU $-DATA答:PL=DATA+12-DATA=124.已知A=25、B=15、C=4,请计算下列表达式的值。
(1) A × 50+B (2) A MOD C+B(3)(A+4)×B-3 (4) B/3 MOD 4(5)A LE B (6) A XOR 50答:(1) A × 50+B= 25 × 50+15=1250+15=12515(2) A MOD C+B=25 MOD 4+15=1+15=16(3)(A+4)×B-3 =(25+4)×15-3 =1500-3=1497(4) B/3 MOD 4 =15/3 MOD 4 =5 MOD 4 =1(5)A LE B =25 LE 15 = 0(6) A XOR 50 = 25 XOR 50 = 435.已知内存DATA单元存放一个字数据,请统计其中含有0的个数,并送人RESULT单元的程序。
第1章绪论作业1. 将下列二进制数转换成十进制数。
(1)11001010B=202 (2)00111101B=61(3)01001101B=77 (4)10100100B=1643. 将下列十进制数分别转换为二进制数和十六进制数。
(2)76= 100 1100B =4CH(4)134= 1000 0110B =86H4. 求下列十进制数的BCD码(1)327=11 0010 0111(BCD码)(2)1256=1 0010 0101 0110(BCD码)6. 求出下列10进制数的原码、反码和补码(2)+85 (4)-85解:85=0101 0101B原码:+85= 0101 0101B -85= 1101 0101B反码:+85= 0101 0101B -85= 1010 1010B补码:+85= 0101 0101B -85= 1010 1011B10. 画出微型计算机的基本结构框图,说明各部分的主要功能是什么?解:微型计算机的基本结构框图如下:微处理器CPU:控制微处理器与存储器或I/O设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向。
微处理器主要完成:(1)指令控制:从存储器中取指令,指令译码;(2)数据加工:简单的算术逻辑运算;(3)操作控制:在微处理器和存储器或者I/O之间传送数据;(4)时间控制:程序流向控制。
存储器:用来存放数据和指令。
I/O接口:主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等各种功能。
I/O设备:输入原始数据和程序,转换成计算机能识别的信息,送入存储器去等待处理。
输出运算结果。
总线:连接计算机系统中各功能部件的信息通道。
第2章 8086CPU作业2. 8086CPU内部由哪两部分组成?它们的大致是如何工作的?答:(1)8086CPU由指令执行部件EU和总线接口部件BIU两部分组成。
(2)① BIU先执行读存储器操作,从给定地址单元中取出指令,送到先进先出的指令队列中等待执行。
习题一、选择CBC AAD三、判断√√√√√五、设计1、编程实现求S=(X2+Y2)/Z的值,将最后结果放入RESULT单元保存。
参考程序如下:DA TA SEGMENT ;定义数据段X DB 5 ;给X、Y、Z赋初值Y DB 7Z DB 2RESULT DB ?;定义RESULT单元,预留空间DA TA ENDS ;数据段结束CODE SEGMENT ;定义代码段ASSSUME CS:CODE,DS:DATASTART:MOV AX,DATA ;初始化DSMOV DS,AXMOV AL,X ;将数据X送ALMUL X ;计算X2MOV BX,AX ;将中间结果保存到BXMOV AL,Y ;将数据Y送ALMUL Y ;计算Y2ADD AX,BX ;X2+Y2,结果保存到AXDIV Z ;计算(X2+Y2)/ZMOV RESULT,AL ;最后结果送RESULT单元MOV AH,4CH ;返回DOSINT 21HCODE ENDS ;代码段结束END START ;汇编结束2.计算S=(A+B)/2 – 2(A AND B)。
DA TA SEGMENTA DB 12B DB 51S DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DA TAMOV DS,AXMOV AL,AADD AL,BSHR AL,1MOV AH,AMOV BL,BAND AH,BLMOV BL,AHSHL BL,1SUB AL,BLMOV S,ALMOV AH,4CHINT 21HCODE ENDSEND START3. 参考P86 例4.34.DA TA SEGMENTX DW 34S DW ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DA TAMOV DS,AXMOV AX,XCMP AX,0JL DOUBCMP AX,10JLE TRIBSAL AX,1SAL AX,1JMP EXITDOUB: SAL,AX,1JMP EXITTRIB:SAL AX,1ADD AX,XEXIT:MOV S,AXMOV AH,4CHINT 21HCODE ENDSEND START5.统计非数字字符的个数DA TA SEGMENTBUF DB 20H DUP (?)CNT DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DA TAMOV DS,AXLEA SI,BUFMOV DL,0NEXT1:MOV AH,01HINT 21HMOV [SI],ALINC SICMP AL,0DHJZ EXITCMP AL,30HJGE NEXTINC DLJMP NEXT1NEXT:CMP AL,39HJBE NEXT1INC DLJMP NEXT1EXIT:MOV CNT,DLMOV AH,4CHINT 21HCODE ENDSEND START6、将键盘连续输入的小写字母转换成大写字母CODE SEGMENTASSUME CS:CODESTART: MOV AH,01HINT 21HMOV BL,ALMOV DL,’-‘MOV AH,02HINT 21HMOV AL,BLCMP AL,’a’JB EXITCMP AL,’z’JA EXITSUB AL,20HMOV DL,ALMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HMOV DL,0DHMOV AH,02HINT 21HJMP STARTEXIT: MOV AH,4CHINT 21HCODE ENDSEND START7.统计负数的个数DATA SEGMENTBUF DB 45,50,-34,40,4,15,29,-1,-2,-59CN EQU $-bufA DB ?B DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DA TAMOV DS,AXLEA SI, BUFMOV CX, CNMOV BX, 0LP: MOV AL, [SI]INC SITEST AL, 80HJZ NEXTINC BHJMP EXITNEXT: INC BLEXIT: LOOP LPMOV A, BLMOV B, BHMOV AH,4CHINT 21HCODE ENDSEND START8、宏定义,将16进制数转换成ASCII码HEXTOA MACROAND AL,0FHCOM AL,9JNA HEXTOA1ADD AL,07HHEXTOA1: ADD AL,30HENDM出师表两汉:诸葛亮先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。
第四章习题参考答案教材上的习题P205 1 解:A1 - 4字节,A2 - 6字节,A3 - 40字节,A4 - 60字节P205 4 解:PAR偏移地址为0, PLENTH 当前偏移地址$=2+16+4=22,$-PAR=22,故PLENTH的值为22P205 5 解:AX=1,BX=20,CX=1P206 6 解: 应讨论最高位为1和0的情况。
如输入最高位为1,AH=0;输入最高位为0,AH=0FFH。
IN AL,5FH ;假如输入后AL=45HTEST AL,80H ;执行01000101 AND 10000000后ZF=1,AL=00HJZ L1 ;ZF=1,转到L1MOV AH,0JMP STOPL1: MOV AH,0FFH ;结果AH=0FFHSTOP: HALT补充题阅读程序并完成填空(1) ADDR1开始的单元中连续存放两个双字数据,求其和,并将和存放在ADDR2开始的单元(假定和不超过双字)MOV CX,2XOR BX,BXCLCNEXT: MOV AX,[ADDR1+BX]ADC AX,MOV [ADDR2+BX],AXINC BXNEXT解:[ADDR1+BX+4]INC BXLOOP(2)在数据段ADDR1地址处有200个字节数据,要传送到数据段地址ADDR2处。
MOV AX, SEG ADDR1MOV DS, AXMOV ES,MOV SI,MOV DI, OFFSET ADDR2MOV ,200CLDREP解:AXOFFSET ADDR1CXMOVSB(3)已知有某字串BUF1的首地址为2000H, 数据段与附加段重合。
欲从BUF1处开始将20个字数据顺序传送至BUF2处。
(假设BUF1和BUF2有地址重叠)LEA SI, BUF1ADD SI,LEA DI, BUF2STDMOV CX,REP MOVSW解:38ADD DI, 3820(4)设有一个首地址为ARRAY,有N个字数据的数组,要求求出该数组之和,并把结果存入TOTAL地址中。
《微型计算机原理与接口技术》习题与思考答案第1章微型计算机概论1.1 A B C 1.2 B 1.3 B 1.4 C 1.5 A B C 1.6 B D1.7 00000111B=7D=07H 11010100B=212D=D4H01101010B=106D=6AH 10110.101B=22.625D=16.AH11001.011B=25.375D=19.6H1.8 127D=11111111B=FFH 12.625D=1100.101B=C.AH225.9375D=11100001.1111B=E1.FH 18.3l25D=10010.0101B=12.5H206.125=11001110.001B=CE.2H1.9 10H=10000B=16D 0.A8H=0.10101B=0.65625D28.9H=101000.1001B=40.5625D 4B.2AH=1001011.0010101B=75.6762D20E.4H=1000001110.01B=526.25D1.10 [+37]原=00100101B [+37]反=00100101B [+37]补=00100101B [+37]过余=10100101B[+94]原=01011110B [+94]反=01011110B [+94]补=01011110B [+94]过余=11011110B [-11]原=10001011B [-11]反=11110100B [-11]补=11110101B [-11]过余=01110101B [-125]原=11111101B [-125]反=10000010B [-125]补=10000011B [-125]过余=00000011B1.11补码00010101B的真值为+21D 补码41H的真值为+65D补码9BH的真值为-101D 补码FFH的真值为-1D补码11110101B的真值为-11D1.12 A的ASCII码为41H a的ASCII码为61Hg的ASCII码为67H z的ASCII码为7AH0的ASCII码为30H 9的ASCII码为39H*的ASCII码为2AH +的ASCII码为2BHCR的ASCII码为0DH %的ASCII码为25H1.12一个16×16字形点阵占用存储空间32B一个24×24字形点阵占用存储空间72B一个32×32字形点阵占用存储空间128B1.14 (以8位补码为例)[X]补+[Y]补=[+38]补+[+100]补=0001010B,溢出[X]补+[Z]补=[+38]补+[-20]补=00010010B,未溢出[Y]补- [Z]补=[+100]补- [-20]补=01111000B,未溢出[Z]补- [X]补=[-20]补- [+38]补=11000110B,未溢出1.15 X与Y=0100B X或Z=1111B Y异或Z=1101B 非Y=1001B1.16微型计算机具有体积小、重量轻、功耗低;功能强;可靠性高;价格低廉;结构灵活、适应性强;使用方便、维护容易等特点。
《微型计算机原理与接口技术》清华大学出版社冯博琴吴宁主编课后答案第1章基础知识1。
1 计算机中常用的计数制有哪些?解:二进制、八进制、十进制(BCD)、十六进制。
1。
2 什么是机器码?什么是真值?解:把符号数值化的数码称为机器数或机器码,原来的数值叫做机器数的真值。
1.3 完成下列数制的转换。
微型计算机的基本工作原理汇编语言程序设计微型计算机接口技术建立微型计算机系统的整体概念,形成微机系统软硬件开发的初步能力。
解:(1)166,A6H (2)0。
75(3)11111101.01B, FD。
4H(4 )5B.AH, (10010001.011000100101)BCD1.4 8位和16位二进制数的原码、补码和反码可表示的数的范围分别是多少?解:原码(—127~+127)、(-32767~+32767)补码(—128~+127)、(-32768~+32767)反码(—127~+127)、(—32767~+32767)1。
5 写出下列真值对应的原码和补码的形式。
(1)X= -1110011B (2)X= -71D(3)X= +1001001B 解:(1)原码:11110011 补码:10001101 (2)原码:11000111 补码:10111001 (3)原码:01001001 补码:01001001 1。
6 写出符号数10110101B的反码和补码。
解:11001010,110010111.7 已知X和Y的真值,求[X+Y]的补码。
(1)X=—1110111B Y=+1011010B (2)X=56D Y= —21D 解:(1)11100011 (2)001000111。
8 已知X= —1101001B,Y= -1010110B,用补码求X-Y的值。
解:111011011.9 请写出下列字符的ASCII码。
4A3- !解:34H,41H,33H,3DH,21H1.10 若给字符4和9的ASCII码加奇校验,应是多少?解:34H,B9H1。
第四章1. 下列变量各占多少字节?A1 DW 23H,5876HA2 DB 3 DUP(?),0AH,0DH, ‘$’A3 DD 5 DUP(1234H, 567890H)A4 DB 4 DUP(3 DUP(1, 2,’ABC’))答:A1占4个字节A2占6个字节A3占40个字节A4占60个字节2. 下列指令完成什么功能?MOV AX,00FFH AND 1122H+3344HMOV AL,15 GE 1111BMOV AX,00FFH LE 255+6/5AND AL, 50 MOD 4OR AX, 0F00FH AND 1234 OR 00FFH答:(1)将0066H传送给AX(2)将0FFH传送给AL(3)将0FFFFH传送给AX(4)AND AL,02H(5)OR AX,00FFH3. 有符号定义语句如下:BUF DB 3,4,5,’123’ABUF DB 0L EQU ABUF-BUF求L的值为多少?答:L=64. 假设程序中的数据定义如下:PAR DW ?PNAME DB 16 DUP(?)COUNT DD ?PLENTH EQU $-PAR求PLENTH的值为多少?表示什么意义?答:PAR的偏移地址为0,PLENTH当前偏移地址$=2+16+4=22, $-PAR=22,故PLENTH 的值为22。
若在PLENTH所在行有变量定义,则$表示该变量的偏移地址,即$表示PLENTH所在行的当前偏移地址。
故PLENTH表示从当前行到PAR之间定义的变量所占的字节个数。
5. 对于下面的数据定义,各条MOV指令执行后,有关寄存器的内容是什么?DA1 DB ?DA2 DW 10 DUP(?)DA3 DB ‘ABCD’MOV AX, TYPE DA1MOV BX, SIZE DA2MOV CX, LENGTH DA3答:AX=1,BX=20,CX=16. 下段程序完成后,AH等于什么?IN AL, 5FHTEST AL, 80HJZ L1MOV AH, 0JMP STOPL1: MOV AH, 0FFHSTOP: HLT答:讨论从端口5FH输入的数据最高位的情况。
若最高位为1,则AH=0;若最高位为0,则AH=0FFH。
7. 编程序完成下列功能:(1)利用中断调用产生5秒延时。
(2)利用中断调用,在屏幕上显示1~9之间随机数。
答:(1)可以利用中断类型1CH来处理,因为在系统时钟的中断处理程序中,时钟中断一次要调用一次INT 1CH,即每隔55ms,产生一次1CH中断,要产生5秒延时,只要中断5s/55ms=91次即可。
又因1CH中断处理程序中只有一条IRET指令,故可将用户的程序代替原有的INT 1CH程序。
DATA SEGMENTCOUNT DW 91 ;计数器MESS DB ‘5 s delayed!’,0AH,0DH,’$’DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATA,ES:DATASTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV AL,1CH ;得到原中断向量MOV AH,35HINT 21HPUSH ES ;存储原中断向量PUSH BXPUSH DSMOV DX,OFFSET DELAY ;DELAY的偏移地址和段地址MOV AX,SEG DELAYMOV DS,AXMOV AL,1CH ;设置中断向量MOV AH,25HINT 21HPOP DSIN AL,21H ;设置中断屏蔽位AND AL,0FEHOUT 21H,ALSTIMOV DI,2000H ;主程序延迟,在执行此段程序期间A1: MOV SI,3000H ;产生中断A2: DEC SIJNZ A2DEC DIJNZ A1POP DX ;取原中断向量POP DSMOV AL,1CHMOV AH,25HINT 21HRETMAIN ENDPDELAY PROC NEARPUSH DSPUSH AXPUSH CXPUSH DXMOV AX,DATAMOV DS,AXSTIDEC COUNT ;5秒计数JNZ EXITMOV DX,OFFSET MESS ;显示信息MOV AH,09HINT 21HMOV COUNT,91 ;5秒的值EXIT: CLIPOP DXPOP CXPOP AXPOP DSIRETDELAY ENDPCODE ENDSEND START(2)可以利用INT 1AH,读取当前时间的1/100秒为随机数。
CODE SEGMENTASSUME CS:CODESTART:MOV AH,0INT 1AH ;读取当前时间CH:CL=时:分MOV AL,DL ;DH:DL=秒:1/100秒MOV AH,0MOV BL,9DIV BLINC AHMOV DL,AHADD DL,30HMOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND START8. 编两个通过过程完成将AX中存放的二进制数转换成压缩型BCD码以及将BCD码转换成二进制数。
答:(1)将AX中的二进制数先后除以1000,100和10,每次除法所得的商,即是BCD数的千位、百位和十位数,余数是个位数。
子程序名:B2TOBCD输入参数:AX=十六位二进制数输出参数:CF=0,则AX=4位压缩型BCD码。
CF=1,则要转换的数大于9999,AX不变。
使用寄存器:CX:存放除数,DX:存放中间结果。
B2TOBCD PROC FARCMP AX,9999 ;AX>9999,则CF置1JBE TRANSTCJMP EXITTRAN: PUSH CXPUSH DXSUB DX,DX ;DX清0MOV CX,1000 ;计算千位数DIV CXXCHG AX,DX ;商在DX中,余数在AX中MOV CL,4SHL DX,CL ;DX左移4位MOV CL,100 ;计算百位数DIV CLADD DL,AL ;百位数加到DL中,DX左移4位MOV CL,4SHL DX,CLXCHG AL,AH ;余数保留在AL中SUB AH,AHMOV CL,10 ;计算十位数DIV CLADD DL,AL ;十位数加到DL中,DX左移4位MOV CL,4SHL DX,CLADD DL,AH ;加个位数MOV AX,DX ;结果送到AX中POP DXPOP CXEXIT: RETB2TOBCD ENDP(2)将AX中4位BCD码顺序乘以1000,100,10和1,然后求和即得。
子程序名:BCDTOB2输入参数:AX=4位压缩BCD码输出参数:AX=十六位二进制数使用寄存器:BX:暂存数据,CX:存放乘数,DX:存放中间结果BCDTOB2 PROC FARPUSH BXPUSH CXPUSH DXMOV BX,AXMOV CL,4ROL AX,CLAND AX,000FHMOV CX,1000 ;乘以1000MUL CXMOV DX,AXMOV AX,BXMOV CL,8ROL AX,CLAND AX,000FHMOV CL,100 ;乘以100MUL CLADD DX,AXMOV AX,BXMOV CL,4SHR AX,CLAND AX,000FHMOV CL,10 ;乘以10MUL CLADD DX,AXAND BX,000FHADD DX,BXMOV AX,DXPOP DXPOP CXPOP BXRETBCDTOB2 ENDP9. 编写两个通用过程,一个完成ASCII码转换成二进制数功能,另一个完成ASCII字符显示输出功能。
答:(1)将AX中两位ASCII码先转化成数字,然后AH*10+AL。
子程序名:ASCIITOB2输入参数:AX=2位ASCII码输出参数:AX=转换后二进制数使用寄存器:BX,CX,DXASCIITOB2 PROC FARPUSH BXPUSH CXPUSH DXMOV BX,AXSUB AH,30HMOV AL,AHMOV CL,10 ;乘以10MUL CLMOV DX,AXMOV AX,BXSUB AL,30HMOV AH,0ADD AX,DXPOP DXPOP CXPOP BXRETASCIITOB2 ENDP(2)使用2号DOS功能调用显示字符。
子程序名:DISPLAY输入参数:AX=2位ASCII码输出参数:无使用寄存器:BX,DXDISPLAY PROC FARPUSH BXPUSH DXMOV BX,AXMOV DL,AHMOV AH,2INT 21HMOV AX,BXMOV DL,ALMOV AH,2INT 21HPOP DXPOP BXRETDISPLAY ENDP10. 编制两个通用过程,完成十六进制数转换成ASCII码并将ASCII码字符显示。
答:(1)子程序名:HEXTOASC输入参数:AX:4位十六进制数输出参数:DX,AX:4位ASCII码,DX高2位,AX低2位使用寄存器:BX,CX,DXHEXTOASC PROC FARPUSH BXPUSH CXPUSH DXMOV BX,AXMOV CL,4 ;转换AH高4位SHR AX,CLAND AX,0F00HADD AH,30HCMP AH,3AHJB A1ADD AH,7A1: MOV DH,AHMOV AX,BX ;转换AH低4位AND AX,0F00HADD AH,30HCMP AH,3AHJB A2ADD AH,7A2: MOV DL,AHMOV BH,BL ;转换AL高4位MOV CL,4SHR BL,CLADD BL,30HCMP BL,3AHJB A3ADD BL,7A3: MOV AH,BLAND BH,0FH ;转换AL低4位ADD BH,30HCMP BH,3AHJB A4ADD BH,7A4: MOV AL,BHPOP DXPOP CXPOP BXRETHEXTOASC ENDP(2)子程序名:DISPLAYASC输入参数:DX,AX:4位ASCII码输出参数:无使用寄存器:BX,CXDISPLAYASC PROC FARPUSH BXPUSH CXMOV BX,DXMOV CX,AXMOV DL,BHMOV AH,02HINT 21HMOV DL,BLINT 21HMOV DL,CHINT 21HMOV DL,CLINT 21HMOV DL,’H’INT 21HPOP CXPOP BXRETDISPLAYASC ENDP11. 某程序可从键盘接收命令(0~5),分别转向6个子程序,子程序入口地址分别为P0~P5,编制程序,用跳转表实现分支结构。