整理微型计算机原理与接口技术周荷琴吴秀清第三版课后习题答案.docx

上传人:scccc 文档编号:13586132 上传时间:2022-01-19 格式:DOCX 页数:23 大小:103.25KB
返回 下载 相关 举报
整理微型计算机原理与接口技术周荷琴吴秀清第三版课后习题答案.docx_第1页
第1页 / 共23页
整理微型计算机原理与接口技术周荷琴吴秀清第三版课后习题答案.docx_第2页
第2页 / 共23页
整理微型计算机原理与接口技术周荷琴吴秀清第三版课后习题答案.docx_第3页
第3页 / 共23页
整理微型计算机原理与接口技术周荷琴吴秀清第三版课后习题答案.docx_第4页
第4页 / 共23页
整理微型计算机原理与接口技术周荷琴吴秀清第三版课后习题答案.docx_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《整理微型计算机原理与接口技术周荷琴吴秀清第三版课后习题答案.docx》由会员分享,可在线阅读,更多相关《整理微型计算机原理与接口技术周荷琴吴秀清第三版课后习题答案.docx(23页珍藏版)》请在三一文库上搜索。

1、精品文档第一章1什么是冯诺依曼机?答:冯 诺依曼于1945年提出了存储程序的概念和二进制原理,利用这种概念和原 理设计的电子计算机系统统称为冯诺依曼机.它包括运算器、限制器、存储器、输入设备和输出设备五个组成局部.早期的冯 诺依曼机结构上以运算器和限制器为中央,随着计算机体系结构的开展, 现在已演化为以存储器为中央的结构.2微处理器,微型计算机,微型计算机系统有什么联系与区别?答:微处理器是微型计算机系统的核心,也称为 CPU (中央处理器).主要完成:从存储 器中取指令,指令译码;简单的算术逻辑运算;在处理器和存储器或者I/O之间传送数据;程序流向限制等.微型计算机由微处理器、存储器、输入/

2、输出接口电路和系统总线组成.以微型计算机为主体,配上外部输入/输出设备及系统软件就构成了微型计算机系统.三者关系如以下图:3微处理器有哪些主要部件组成?其功能是什么?答:微处理器是一个中央处理器,由算术逻辑部件ALU、累加器和存放器组、指令指针寄存器IP、段存放器、标志存放器、时序和限制逻辑部件、内部总线等组成.算术逻辑部件ALU主要完成算术运算及逻辑运算.累加器和存放器组包括数据存放器和变址及指针存放器,用来存放参加运算的数据、 中间结果或地址.指令指针存放器IP存放要执行的下一条指令的偏移地址,顺序执行指令时,每取一条 指令增加相应计数.段存放器存放存储单元的段地址,与偏移地址组成20位物

3、理地址用来对存储器寻址.标志存放器flags存放算术与逻辑运算结果的状态.时序和限制逻辑部件负责对整机的限制:包括从存储器中取指令,对指令进行译码和分析,发出相应的限制信号和时序,将限制信号和时序送到微型计算机的相应部件,使CPU内部及外部协调工作.内部总线用于微处理器内部各部件之间进行数据传输的通道.(3) 1238D=2326Q=4D6H(4) 92D=134Q=5CH12. 将以下十进制数转换为8位有符号二进制数.(1) +32(2) -12( 3) +100(4) -9答:(1) +32原=+32反=+32补=00100000B(2) -12原=10001100B -12反=11110

4、011B(3) +100原=+100反=+100补=01100100B(4) -92原=11011100B -92反=10100011B13. 将以下十进制数转换为压缩和非压缩格式的BCD码.(1) 102( 2) 44(3) 301(4) 1000答:(1) 102压缩 BCD=00000001 00000010B102非压缩 BCD=00000001 00000000 0(2) 44压缩 BCD=01000100B44非压缩 BCD=00000100 0(3) 301压缩 BCD=00000011 00000001B301非压缩 BCD=00000011 00000000 0(4) 100

5、0压缩 BCD=00010000 00000000B1000非压缩 BCD=00000001 00000000 014. 将以下二进制数转换为有符号十进制数.(1) 10000000B(2) 00110011B(3)答:(1)看作原码时真值为-0,看作反码时真值为-127,看作补码时真值为-128(2) +51(3) 看作(4) 看作原码时真值为-9,看作反码时真值为-118,看作补码时真值为-119 第二章1.8086CPU内部由哪两局部组成?它们的主要功能是什么? 答:8086CPU内部由执行单元 EU和总线接口单元 BIU 组成.主要功能为:执行单元EU负责执行指令.它由算术逻辑单元(A

6、LU)、通用存放器组、16位标志存放器(FLAGS)、EU限制电路等组成.EU在工作时直接从指令流队列中取指令 代码,对其译码后产生完成指令所需要的限制信息.数据在ALU中进行运算,运算结果的特征保存在标志存放器 FLAGS中.总线接口单元 BIU负责CPU与存储器和I/O接口之间的信息传送.它由段存放 器、指令指针存放器、指令队列、地址加法器以及总线限制逻辑组成.2. 8086CPU中有哪些存放器?各有什么用途?答:8086CPU内部包含4组16位存放器,分别是通用存放器组、指针和变址存放器、段 寄存器、指令指针和标志位存放器.(1) 通用存放器组 包含4个16位通用存放器 AX、BX、CX

7、、DX,用以存放普通数据或地址,也有其特殊用途.如AX (AL )用于输入输出指令、乘除法指令,BX在间接寻址中作基址存放器,CX在串操作和循环指令中作计数器,DX用于乘除法指令等.(2) 指针和变址存放器BP、SP、SI和DI,在间接寻址中用于存放基址和偏移地址.(3) 段存放器 CS、DS、SS、ES存放代码段、数据段、堆栈段和附加段的段地址.(4) 指令指针存放器IP用来存放将要执行的下一条指令在现行代码段中的偏移地址.(5) 标志存放器Flags用来存放运算结果的特征.3. 8086CPU和8088CPU的主要区别是什么?答:8088CPU的内部结构及外部引脚功能与8086CPU大局部

8、相同,二者的主要不同之处如下:(1) 8088指令队列长度是 4个字节,8086是6个字节.(2) 8088的BIU内数据总线宽度是 8位,而EU内数据总线宽度是16位,这样对16 位数的存储器读/写操作需要两个读/写周期才能完成.8086的BIU和EU内数据总线宽度 都是16位.(3) 8088外部数据总线只有 8条AD7AD0,即内部是16位,对外是8位,故8088 也称为准16位机.(4) 8088中,用IO/M信号代替M/IO信号.(5) 8088中,只能进行 8位数据传输,BHE不再需要,改为 SS0,与DT/R和IO/M 一起决定最小模式中的总线周期操作.4. 简要解释以下名词的意

9、义:CPU,存储器,堆栈,IP, SP, BP,段存放器,状态标志,限制标志,物理地址,逻辑地址,机器语言,汇编语言,指令,内部总线,系统总线.答:CPU :中央处理器,是整个计算机系统的限制中央,主要功能是进行算术和逻辑运算,以及发出各种限制信号以协调整个系统正常工作.存储器:是计算机系统中的记忆元件,用于存储指令和数据.堆栈:在存储器中开辟的一个区域,用来存放需要暂时保存的数据.其操作特点是先 进后出.IP :指令指针存放器,用来存放将要执行的下一条指令在现行代码段中的偏移地址.SP:堆栈指针存放器,用于指向当前栈顶单元.BP :基址指针,间接寻址中用于存放基址,隐含段地址为SS.段存放器

10、:用于存放逻辑段的段地址.状态标志:SF、ZF、OF、AF、PF和CF,反映运算结果的状态特征.限制标志:IF、DF和TF,对可屏蔽中断、字符串操作指针变换方向和单步运行起限制 作用.物理地址:指存储器中存储单元的实际地址编码,是一种绝对地址,是CPU访问存储器的实际寻址地址,对于8086系统,地址范围为 00000HFFFFFH.逻辑地址:由段基址和偏移地址组成,均为无符号的16位二进制数,程序设计时采用逻辑地址,可由逻辑地址变换为物理地址,物理地址=段基址X16+偏移地址.机器语言:直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,计算机可以直接识别,不需要进行任何译.每

11、台机器的指令,其格式和代码所代表的含义都是硬性规定的,故称之为面向机器的语言,也称为机器语言,是第一代计算机语言.汇编语言:使用助记符表示的二进制代码指令语言,是一种符号化的机器语言,必须 经编译程序将汇编语言编译成机器语言,计算机才能识别.指令:能被计算机识别并执行的二进制代码,规定了计算机能完成的某一操作.内部总线:微处理器内部各个部件之间传送信息的通道.系统总线:微处理机机箱内的底板总线,用来连接构成微处理机的各个插件板,如ISA总线、EISA总线、PCI总线等.5. 要完成下述运算或限制,用什么标志位判别?其值是什么?(1) 比拟两数是否相等(2)两数运算后结果是正数还是负数(3)两数

12、相加后是否溢出(4 )采用偶校验方式,判定是否要补1(5) 两数相减后比拟大小(6)中断信号能否允许答:(1) ZF,两数相减,假设 ZF=1,那么相等.(2) SF, SF=1那么为负,否那么为正(3) 对有符号数:OF, OF=1为溢出;对无符号数:CF, CF=1为溢出(4) PF, PF=1,不补 1(5) 对有符号数:无溢出时( OF=0),女口 ZF=1,那么两数相等;如 ZF=0且SF=0,贝U 被减数大;如 ZF=0且SF=1,那么减数大;有溢出时(OF=1 ),女口 SF=1,那么被减数大;如 SF=0,那么减数大; 对无符号数:女口 ZF=1 ,那么两数相等;女口 CF=0

13、,那么被减数大;女口 CF=1 , 那么减数大(6) IF , IF=1,允许中断6. 8086系统中存储器采用什么结构?用什么信号来选中存储体?答:8086系统中,存储器采用分体结构,1MB的存储空间分成两个存储体:偶地址存储体和奇地址存储体,各为 512KB.使用A0和BHE来区分两个存储体.当A0=0时,选中偶地址存储体,与数据总线低8位相连,从低8位数据总线读/写一个字节.当BHE =0时,选中奇地址存储体,与数据总线高8位相连,从高8位数据总线读/写一个字节.当A0=0, BHE =0时,同时选中两个存储体,读/写一个字.9.段存放器装入如下数据,写出每段的起始和结束地址.1 100

14、0H 21234H 32300H 4E000H 5AB00H答:110000H1FFFFH212340H2233FH323000H32FFFH4EOOOOHEFFFFH5ABOOOHBAFFFH10根据以下CS: IP的组合,求出要执行的下一条指令的存储器地址.1CS: IP=1000H : 2000H 2CS: IP=2000H : 1000H3CS: IP=1A00H : B000H4CS: IP=3456H : AB09H答:1 12000H2 21000H3 25000H4 3F069H11. 求以下存放器组合所寻址的存储单元地址:1DS=1000H,DI=2000H 2SS=2300

15、H,BP=3200H3DS=A000H,BX=1000H 4SS=2900H,SP=3A00H答:112000H 226200H 3A1000H 42CA00H12. 假设当前SS=3500H,SP=0800H,说明堆栈段在存储器中的物理地址,假设此时入栈10个字节,SP内容是什么?假设再出栈 6个字节,SP为什么值?答:物理地址:35000H35800H.入栈10个字节后 SP为7F6H.再出栈 6个字节后 SP 为 7FCH.14. 存储器中每段容量最多 64K字节,假设用debug调试程序中的r命令,在屏幕上有如下 显示:C: debug-rAX=0000 BX=0000 CX=0079

16、 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=10E4 ES=10F4 SS=21F0 CS=31FF IP=0100 NV UP DI PL NZ NA PO NC1 试画出此时存储器分段示意图2写出状态标志 OF、SF、ZF、CF的值答:1 代码段首地址:3仆F0H当前指令地址:320F0H数据段首地址:10E40H堆栈段首地址:21F00H堆栈段栈顶地址:31EEEH附加段首地址:10F40H2OF=SF=ZF=CF=015. 说明8086系统中 最小模式和最大模式两种工作方式的主要区别是什么?答:为了便于组成不同规模的系统,在8086芯片中设计了

17、两种工作模式,即最小模式和最大模式.最小模式用于单机系统,系统中所需要的限制信号全部由8086直接提供;最大模式用于多处理机系统,系统中所需要的限制信号由总线限制器8288提供.16. 8086系统中为什么要用地址锁存器?8282地址锁存器与 CPU如何连接?答:为了减少引脚的数量,8086CPU的地址引脚和数据引脚分时复用,为了保证在总线操作周期中地址信号能有效而稳定的输出,必须使用地址锁存器.由于8086有20条地址线,故需使用三片 8282,其中OE接地,STB与CPU的ALE 相连,前两片8282的DI0DI7 分别与CPU的AD0AD15 相连,第三片8282的DI0DI3 分别与C

18、PU 的AD16AD19 相连,DI4 与CPU 的BHE 相连.17. 哪个标志位限制 CPU的INTR引脚?答:IF,中断允许标志,IF=1时,允许可屏蔽中断,IF=0时,禁止可屏蔽中断.18什么叫总线周期?在 CPU读/写总线周期中,数据在哪个机器状态出现在数据总线上?答:CPU完成一次存储器访问或I/O端口操作所需要的时间称为一个总线周期,由几个T状态组成.在读/写总线周期中,数据在 T2T4状态出现在数据总线上.20. 8086CPU重新启动后,从何处开始执行指令?答:重新启动后,CS=FFFFH , IP=0000H,故从物理地址为 FFFF0H的位置开始执行指令.21. 8086

19、CPU的最小模式系统配置包括哪几局部?答:8086最小模式系统配置包括:8086CPU,存储器,I/O接口芯片,1片8284时钟发生器,3片8282地址锁存器,2片 8286双向数据总线收发器.第三章1. 分别说明以下指令的源操作数和目的操作数各采用什么寻址方式.(1) MOV AX , 2408H(2) MOV CL , 0FFH (3) MOV BX , SI(4) MOV 5BX , BL (5) MOV BP+100H , AX (6) MOV BX+DI , $(7) MOV DX , ES: BX+SI (8) MOV VALBP+DI , DX(9) IN AL , 05H(10

20、) MOV DS , AX精品文档答:(1)立即数,存放器(4)存放器,存放器相对(7 )基址变址,存放器(2) 立即数,存放器(3)存放器间接,存放器(5) 存放器,存放器相对(6)立即数,基址变址(8) 存放器,相对基址变址(9) 直接端口寻址,存放器(10)存放器,存放器2. :DS=1000H , BX=0200H , SI=02H ,内存 10200H10205H 单元的内容分别为 10H ,2AH , 3CH , 46H , 59H , 6BH.以下每条指令执行完后 AX存放器的内容各是什么?(1) MOV AX , 0200H (2) MOV AX , 200H (3) MOV

21、AX , BX(4) MOV AX , 3BX ( 5) MOV AX , BX+SI (6) MOV AX , 2BX+SI答:(1) 0200H(2) 2A10H( 3) 0200H(4) 5946H(5) 463CH(6) 6B59H3. 设 DS=1000H , ES=2000H , SS=3500H, SI=00A0H , DI=0024H , BX=0100H , BP=0200H , 数据段中变量名为 VAL的偏移地址值为 0030H,试说明以下源操作数字段的寻址方式是什 么?物理地址值是多少?(1)(4)(7)(9)MOVAX ,MOVAX ,MOVAX ,MOVAX ,100

22、H (2) MOV AX , VAL (3) MOV AX , BXES: BX (5) MOV AX , SI (6) MOV AX , BX+10HBP (8) MOV AX , VALBPSIVALBXDI (10) MOV AX , BPDI答:(1)直接,10100H(2)直接,10030H(3)存放器间接,10100H(4)存放器间接,20210H ( 5)存放器间接,100A0H (6)存放器相对,10110H(7)存放器间接,35200H ( 8)相对基址变址, 352D0H(9 )相对基址变址,10154H ( 10)基址变址,35224H4. 写出以下指令的机器码(1) M

23、OV AL , CL (2) MOV DX , CX (3) MOV BX+100H, 3150H答:1 10001010 11000001B210001011 11010001B311000111 10000111 00000000 00000001 01010000 00110001B5. 程序的数据段为:DATA SEGMENTA DB $ ,10HB DB COMPUTEC DW 1234H, 0FFHD DB 5 DUPE DD 1200459AHDATA ENDS求以下程序段执行后的结果是什么.MOV AL, AMOV DX, CXCHG DL, AMOV BX, OFFSET B

24、MOV CX, 3BXLEA BX, DLDS SI, ELES DI, E 答: MOV AL, A AL=24HMOV DX, C DX=1234HXCHG DL, A DL=24H, A=34HMOV BX, OFFSET B BX=2MOV CX, 3BX CX=5550HLEA BX, D BX=000EHLDS SI, E DS=1200H, SI=459AHLES DI, E ES=1200H, DI=459AH6. 指出以下指令中哪些是错误的,错在什么地方.1MOV DL,AX 2MOV 8650H,AX 3MOV DS,0200H4MOV BX ,1200H 5MOV IP,

25、0FFH 6MOV BX+SI+3 ,IP7MOV AX,BXBP 8MOV AL,ES: BP 9MOV DL,SIDI10MOV AX,OFFSET 0A20H 11MOV AL,OFFSET TABLE12XCHG AL,50H 13IN BL,05H 14OUT AL,0FFEH答:1长度不匹配2立即数不能做目的操作数3579段存放器不能用立即数赋值IP不能用指令直接修改BX/BP 应与 SI/DI搭配 SI/DI应与BX/BP搭配11偏移地址为16位,13IN 必须用 AL/AX9.以下指令完成什么功能?1 ADD AL,DH 2AL4两个内存单元不能直接传送数据6指令中不能出现 I

26、P8正确10 OFFSET后应跟内存单元长度不够 12立即数不能用于 XCHG14操作数顺序反向;地址应为 8位ADC BX,CX 3SUB AX,2710H4 DEC BX 5 NEG CX 6 INC BL(7) MUL BX ( 8) DIV CL答:(1) AL+DHAL(2) BX+CX+併 BX( 3) AX-2710HRAX(4) BX- 1 BX (5) 0-CXCX(6) BL+F BL(7) AX*BX DX , AX ( 8) AX/CL 商 f AL,余数 AH14.在以下程序段括号中分别填入以下指令(1) LOOP NEXT (2) LOOPE NEXT( 3) LO

27、OPNE NEXT试说明在这三种情况下,程序段执行完后,AX,BX,CX,DX的内容分别是什么.START: MOV AX,01HMOV BX,02HMOV DX,03HMOV CX,04HNEXT: INC AXADD BX,AXSHR DX,1()答:(1) AX=05H BX=10H CX=0 DX=0(2) AX=02H BX=04H CX=03H DX=01H(3) AX=03H BX=07H CX=02H DX=016. 中断向量表的作用是什么?它放在内存的什么区域内?中断向量表中的什么地址用于 类型3的中断?答:中断向量表用来存放中断效劳程序的入口地址.8086的256类中断的入

28、口地址要占用1K字节,位于内存 00000H003FFH的区域内.中断向量表中 0000CH0000FH用于类 型3的中断.17. 设类型2的中断效劳程序的起始地址为0485: 0016H,它在中断向量表中如何存放?答:物理地址内容00008H 16H00009H 00H0000AH 85H0000BH 04H18. 假设中断向量表中地址为 0040H中存放240BH , 0042H单元里存放的是 D169H,试问:(1) 这些单元对应的中断类型是什么?(2 )该中断效劳程序的起始地址是什么?答:(1) 10H(2) D169H:240BH19. 简要说明8086响应类型04中断的条件是什么?

29、答:类型0:除法错中断执行除法指令时,假设除数为0或所得商超过存放器能容纳的范围,那么自动产生类型0中断.类型1:单步中断假设CPU的单步标志TF=1,那么每执行完一条指令后,自动产生类型 1中断.类型2:不可屏蔽中断 NMI当8086的NMI引脚上接收到由低变高的电平变化时,将自动产生类型2中断.类型3:断点中断假设在程序中某位置设置断点,当程序执行到该断点时,那么产生类型3中断.类型4:溢出中断假设溢出标志0F=1,那么可由溢出中断指令 INTO产生类型4中断.第四章1. 以下变量各占多少字节?A1 DW 23H,5876HA2 DB 3 DUP ?,0AH,0DH, $A3 DD 5 D

30、UP1234H, 567890HA4 DB 4 DUP3 DUP1,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传送给AX2将0FFH传送给AL3将0FFFFH 传送给 AX4AND AL,02H5OR AX,00FFH3. 有符号定义语句如下:BUF DB 3,4,5, 123 AB

31、UF 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指令执行后,有关存放器

32、的内容是什么?DA1 DB ?DA2 DW 10 DUPDA3 DB ABCDMOV 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 .8. 编两个通过过程完成将 AX中存放的二进制数转换成压缩型BCD码以及将BCD码转换成二进制数

33、.答:1将AX中的二进制数先后除以 1000,100和10,每次除法所得的商, 即是BCD数 的千位、百位和十位数,余数是个位数.子程序名:B2TOBCD输入参数:AX=十六位二进制数输出参数:CF=0,那么AX=4位压缩型BCD码.CF=1,那么要转换的数大于 9999,AX不 变.使用存放器:CX :存放除数,DX :存放中间结果.B2TOBCD PROC FARCMP AX,9999 ; AX9999,贝U CF 置 1JBE TRANSTCJMP EXITTRAN: PUSH CXPUSH DXSUB DX,DX ; DX 清 0MOV CX,1000;计算千位数DIV CXXCHG

34、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码顺序乘以100

35、0, 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,

36、CLAND AX,000FHMOV CL,10;乘以 10MUL CLADD DX,AXAND BX,000FHADD DX,BXMOV AX,DXPOP DXPOP exPOP BXRETBCDTOB2 ENDP9. 编写两个通用过程,一个完成ASCII码转换成二进制数功能,另一个完成ASCII字符显 示输出功能.答:1 将AX中两位ASCII码先转化成数字,然后 AH*10+AL.子程序名:ASCIITOB2输入参数:AX=2 位ASCII码输出参数:AX=转换后二进制数使用存放器:BX,CX,DXASCIITOB2 PROC FARPUSH BXPUSH CXPUSH DXMOV BX,

37、AXSUB AH,30HMOV AL,AHMOV CL,10;乘以 10MUL CLMOV DX,AXMOV AX,BXSUB AL,30HMOV AH,0ADD AX,DXPOP DXPOP CXPOP BXRETASCIITOB2 ENDP2使用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 BXRETDISP

38、LAY 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 A

39、H,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 F

40、ARPUSH BXPUSH CXMOV BX,DXMOV CX,AXMOV DL,BHMOV AH,02HINT 21HMOV DL,BLINT 21HMOV DL,CHINT 21HMOV DL,CLINT 21HMOV DL, HINT 21HPOP CXPOP BXRETDISPLAYASC ENDP13.将键盘上输入的十六进制数转换成十进制数,在屏幕上显示. 答: DATA SEGMENTSTRING DB INPUT 4 HEX NUM:,0AH,0DH,$NUM DB 10 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTAR

41、T: MOV AX,DATAMOV DS,AXLEA DX,STRING ;显示提示信息MOV AH,9INT 21HMOV BP,4MOV DX,0CONT: MOV CL,4 ;输入4位十六进制数 DXSHL DX,CLD1: MOV AH,1INT 21HCMP AL,0JB D1CMP AL,FJA D1CMP AL,AJB A1SUB AL,7A1: SUB AL,30HMOV AH,0ADD DX,AXDEC BPJNZ CONTMOV SI,0 ;将DX转换成十进制数,再转换成 ASCII码一NUM MOV AX,DXMOV DX,0MOV BX,10D2: DIV BXADD

42、DL,30HMOV NUMSI,DLINC SICMP AX,0JZ EXITMOV DX,0JMP D2EXIT: MOV DL,0AH ;显示十进制数MOV AH,2INT 21HMOV DL,0DHINT 21HD3: DEC SIMOV DL,NUMSIMOV AH,2INT 21HJNZ D3MOV AH,4CHINT 21HCODE ENDSEND START14.将AX中的无符号二进制数转换成ASCII字符串表示的十进制数.答:将13题输入过程和输出过程去掉即得.DATA SEGMENTNUM码一NUMNUM DB 10 DUP;转换后 ASCII码按倒序存放于DATA ENDS

43、CODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV AX, XXXX ;无符号二进制数MOV SI,0 ;将AX转换成十进制数,再转换成 ASCIIMOV DX,0MOV BX,10D2: DIV BXADD DL,30HMOV NUMSI,DLINC SICMP AX,0JZ EXITMOV DX,0JMP D2EXIT: MOV AH,4CHINT 21HCODE ENDSEND START17.编写2位非压缩型BCD码相乘的程序. 答:转化成加法进行累加运算.DATA SEGMENTDA1 DB 09H,09HDA2 DB 09H,08HRESULT DB 4 DUP(O)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV AL,DA2+1 ;计算加法次数MOV BL,10MUL BLMOV BL,DA2MOV BH,0ADD AX,BXMOV CX,AXCONT: MOV AH,0 ;通过循环做累加MOV AL,RESULTADD AL,DA1AAAMOV RESULT,ALMOV AL,RESULT+1ADD AL,AHMOV AH,0AAAADD AL,DA1+1AAAMOV RESU

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1