兰州理工大学微机原理习题集作业答案1-5章

上传人:hjk****65 文档编号:180325422 上传时间:2023-01-05 格式:DOC 页数:20 大小:1.15MB
收藏 版权申诉 举报 下载
兰州理工大学微机原理习题集作业答案1-5章_第1页
第1页 / 共20页
兰州理工大学微机原理习题集作业答案1-5章_第2页
第2页 / 共20页
兰州理工大学微机原理习题集作业答案1-5章_第3页
第3页 / 共20页
资源描述:

《兰州理工大学微机原理习题集作业答案1-5章》由会员分享,可在线阅读,更多相关《兰州理工大学微机原理习题集作业答案1-5章(20页珍藏版)》请在装配图网上搜索。

1、微 机 原 理 及 应 用 B 作 业 第 一 章 微型计算机概论1.1、答:微型计算机系统包括硬件系统和软件系统两大部分。硬件系统包括:微型计算机、外部设备、电源及其它辅助设备。软件系统包括:系统软件和应用软件。微型计算机也称为主机,主机包括:微处理器、存储器、输入/输出接口(Input/Output),微处理器通过系统总线和存储器、输入/输出接口进行连接。微处理器(Microprocessor Unit)简称为MPU(或者称为MP),它是一个中央控制器(Central Processing Unit),简称CPU。它是微型计算机的核心部件,它将运算器、控制器、寄存器通过内部总线连接在一起,

2、并集成在一个独立芯片上。1.2、答:单片机是将CPU、ROM、RAM以及I/O接口电路以及内部系统总线等全部集中在一块大规模集成电路芯片上,就构成了单片机。单板机是将微处理器芯片、存储器芯片、I/O接口芯片及少量的输入输出设备(键盘,数码显示器)安装在一块印制板上构成一台微型计算机。由多块印制板构成的微机称为多板机。1.3、完成下列转换(保留4位小数)(21.32)10=(10101.0101)2=(25.2436)8=(15.51EB)16 50.38D= 110010.0110 B=62.3024 Q= 32.6147 H 1.4、完成下列计算 已知X-63,Y59则X原BFH(10111

3、111B),X反C0H(110000000B),X补C1H(11000001B)Y原3BH(00111011B),Y反3BH(00111011B),Y补3BH(00111011B)XY补0FCH(11111100B), XY补86H(10000110B)。X 补Y补0FCH(11111100B),X 补g补86H(10000110B)。1.5、答:浮点数是指小数点在数值中的位置不是固定不变,实际位置将随阶码而浮动,用这种方法表示的数,称为浮点数。定点数是指小数点在数值中的位置固定不变。1.6、答:压缩BCD码是4位二进制表示一位十进制数而非压缩BCD码是8位二进制表示一位十进制数。1.7、写出

4、下列数值的压缩的BDC码、非压缩的BDC码、ASC码值。(改为15,29) 15=15H压缩BCD码= 0105 H 非压缩BCD码= 3135 H ASC码29= 29H压缩BCD码= 0209H 非压缩BCD码= 3239H ASC码第 二 章 8086/8088 微处理器2.1 答:从功能上讲由两部分组成 总线接口单元BIU和执行单元EU组成。总线接口单元(BIU)是微处理器内部与存储器和I/O接口传送信息的通道,总线接口单元负责从内存中将指令送到指令队列中;负责把数据从内存或I/O接口送到执行单元(EU);负责将执行单元的运行结果送到内存或I/O接口。EU的功能是负责译码和执行指令。2

5、.2 答:指令队列(Queue)存放预取的指令,采用预取指令的方法将减少微处理器的等待时间,提高运行效率。8086CPU中指令队列有6个;8088 CPU中指令队列有只有4个。2.3 答:8086/8088 CPU中有16个16位的寄存器。4个段地址寄存器是代码段寄存器CS ;数据段寄存器DS;堆栈段寄存器SS 和扩展段寄存器ES 。它们是用来存放每一个段的首地址(段基地址)。一个指令指针寄存器IP是用于存放要执行的指令的偏移地址,它不能作为一般寄存器使用。一个标志寄存器(又称为程序状态寄存器)用于反映指令执行结果或控制指令执行形式。)有8个通用寄存器,通用寄存器分为数据寄存器与指针和变址寄存

6、器两组。数据寄存器包括AX(累加器)、BX(基址寄存器)、CX(计数器)和DX(数据寄存器),一般用来存放16位数据,故称为数据寄存器。其中的每一个又可根据需要将高8位和低8位分成独立的两个8位寄存器来使用,即AH、BH、CH、DH和AL、BL、CL、DL两组,用于存放8位数据,它们均可独立寻址、独立使用。数据寄存器用来存放计算的结果和操作数,也可以存放地址。指针寄存器包括堆栈指针寄存器SP、基址指针寄存器BP一般用来存放地址的偏移量和用于寻址内存堆栈内的数据变址寄存器包括原变址寄存器SI和目的变址寄存器DI,一般用来存放地址的偏移量为存储器寻址时提供地址。 2.4 答:标志寄存器又称为程序状

7、态寄存器,是一个16位的寄存器,标志寄存器设置了9个标志位。这9个标志位按功能分可以分为两类:一类为状态标志,状态标志表示执行某种操作后,ALU所处的状态特征,这些状态标志会影响后面的具体操作。状态标志有6个:CF、AF、SF、PF、OF和ZF。另一类为控制标志,用来控制CPU操作,反映存储器地址变化的方向、是否允许中断及在执行程序时是否进行单步中断。控制标志有3个:DF、IF和TF控制标志是人为设置的,每个控制标志都对某种特定的功能起控制作用。2.5 答: 8086与8088有3点不同之处;1. 8086有16条数据线而8088只有8条数据线,2. 8086而8088。3. 8086而808

8、8。2.6 答:堆栈是在内存中开辟的一个特定的区域,用以存放CPU寄存器或存储器中暂时不用的数据和有用的信息。在数据段和附加段存放数据时,一般是从低地址开始向高地址存放数据,而用PUSH指令向堆栈中存放数据时总是从高地址开始逐渐向低地址方向增长。堆栈指令遵循“先进后出”,“后进先出”的原则,凡是用PUSH指令最后推入堆栈的数据,用POP指令弹出时最先出栈。在操作时是以字为单位。2.7 答:8086/8088 CPU各有20根地址总线,可寻址范围是1M个存储单元。8086CPU有16根数据,一次可以读一个字也可以读一个字节。8088 CPU有8数据总线一次以读一个字节。2.8 答:1.物理地址就

9、是实际地址,它具有20位的地址值,它是唯一标志1MB存储空间的某一单元的地址。2.逻辑地址由段基址和偏移量组成。程序以逻辑地址编址,而不是物理地址。3.在8086/8088存储空间中,把16个字节的存储空间看作一节。为了简化操作,要求各个逻辑段从节的整数边界开始,也就是说段首地址低4位应该是“0”,因此把段首地址的高16位称为“段基值”。4. 偏移量是该物理地址距离段首地址的单元数。2.9 答:总线上传输信号的一组导线,作为微机各部件之间信息传输的公共通道。系统总线按功能分数据总线、地址总线、控制总线。2.10答:1.8086/8088 CPU把存储器分为代码段、数据段、堆栈段、附加段。因为8

10、086/8088的寄存器是16位,最大只能寻址64K个单元的存储空间,为了增大寻址空间把存储器进行分段,这样就可以寻址1MB存储空间。2.每段最大空间为64KB。2.11 答:(1)2300H;1010H;24010H (2) 0000H;1000H;01000H(3)2AE0H;1690H;2C490H (4) 7369H;0010H;736A0H2.12 答:1.数据段首地址是12000H末地址是21FFFH。2.附加段的首地址是20A30H末地址是30A2FH。3.代码段的首地址是470E0H=470EH10H末地址是570DFH=(470E0H+FFFFH)。2.13答:8086/80

11、88 CPU复位以后,除代码段寄存器外,其余标志寄存器、指令指针寄存器、各段寄存器及指令对列全部被清零。2.14答:在一个读总线周期ALE在第一个时钟周期为高电平,其余周期为低电平。/S7在第一个时钟周期为低电平,其余周期为高电平。在第一个时钟周期为低电平,第二、三周期为高电平。一直为高电平。M/一直为高电平。DT/一直为低电平。2.15 答:1.8086 CPU读/写总线周期时,最少包含4个时钟周期。2.CPU在T3状态的前沿(下降沿)对Ready信号进行采样。若CPU在T3状态的开始采样到Ready信号为低电平,那么将在T3和T4之间插入等待状态TW。3.TW可以是一个,也可以是多个。CP

12、U在每个TW的前沿处对Ready信号进行采样。当在TW状态采样到READY信号为高电平时,在当前Tw状态执行完,进入T4状态。第 三 章 存 储 器3.1 答:1容量:存储器芯片的容量是以1位二进制数(bit)为单位,因此存储器容量是指每一个存储器芯片所能存储的二进制数的位数。(存储器容量=存储单元数位数) 2存储速度:存储器的基本操作是读出与写入,称为“访问”或“存取”。存储器的存储速度有两个时间参数:(1)访问时间(Access Time) TA 从启动一次存储器操作,到完成该操作所经历的时间。 (2)存储周期(Memory Cycle) TMc 启动两次独立的存储器操作之间所需的最小时间

13、间隔。3存储器的可靠性:4性能/价格比:5其他指标(存储器的选择有时还应考虑功耗、集成度等指标)。3.2答:按存储器的读写功能分可以分为随机读写存储器(RAM)和只读存储器(ROM)。随机读写存储器RAM可以随机地按指定地址从存储单元存入或读取(简称存取)数据,存放在RAM中的信息,一旦掉电就会丢失。随机读写存储器RAM可分为静态随机存取存储器SRAM、动态随机存取存储器DRAM和集成随机读写存储器IRAM。只读存储器(ROM)的基本特征是在正常运行中只能随机读取预先存入的信息,即使在断电情况下,ROM仍能长期保存信息内容不变,所以它是一种永久存储器。只读存储器(ROM)可分为掩膜只读存储器(

14、Mask ROM)、可编程只读存锗器(PROM)、紫外线可擦除可编程只读存储器(EPROM)、电可擦除编程只读存储器(E2PROM)和快速可擦编成只读存储器(Flash EPROM)。掩膜只读存储器其结构简单,存储信息稳定,可靠性高,能够永久性保存信息;可编程只读存储器是由半导体厂家制作“空白”存储器阵列(即所有存储单元全部为1或全部为0状态)出售,用户根据需要可以实现现场编程写入,但只能实现一次编程;紫外线可擦编程只读存储器、电可擦除编程只读存储器和快可擦编程只读存储器等不仅可以现场编程。还可以擦除原存储的信息内容,写入新的信息。3.3 答:SRAM的特点是在一个存储单元所用晶体管数目多,但

15、不需要刷新电路。DRAM的特点是在一个存储单元所用晶体管数目少,但需要刷新电路。IRAM的特点是将动态随机存取存储器和刷新电路集成在一片芯片中,它即具有SRAM速度快的优点,又具有DRAM的廉价。IRAM实际上是附有刷新电路的 DRAM。它在现代微机系统中得到广泛应用,大容量的内存一般都是用IRAM。3.4 答:1)13条地址线和4条数据线;2)19条地址线和1条数据线3)17条地址线和4条数据线;4)15条地址线和8条数据线 3.5 答:1)RAM的存储容量为256K8 bit;2)有18条地址线和8条数据线;3)若采用6116需要128片,若采用6264需要32片,若采用62128需要16

16、片,若采用2114需要512片,若采用2141需要512片。3.6 答:1)ROM的存储容量为512K8 bit;2)需要19条地址线和8条数据线;3)若采用2764需要64片,若采用27128需要32片,若采用2816A需要256片,若采用28F256需要16片。3.7 答:常用的存储器片选控制方法有线选法、全译码法和部分译码法。线选法地址线可以不用完,也无需专门的译码电路。但由于高位地址线可随意取值0或1。所以,存在地址重叠,并且造成存储器地址不能连续分布。全译码法所有地址线均参加地址译码,芯片的地址线直接和低位地址总线相连,高位地址总线经译码器或逻辑电路与各芯片的片选信号相连。部分译码法

17、与全译码法类似,只是高位地址线中有一部分进行译码,产生片选信号,而不是全部。这种方法称为部分译码法。3.8 答:第一片的首地址为21000H(错),末尾地址为24FFEH。第二片的首地址为21001H,末尾地址为24FFFH。第三片的首地址为25000H,末尾地址为28FFEH。第四片的首地址为25001H,末尾地址为28FFFH。3.9第一片 A19A12=01000000,地址范围是 40000H40FFEH第二片 A19A12=01000000,地址范围是40001H40FFFH第三片 A19A12=01000001,地址范围是 41000H41FFEH第四片 A19A12=010000

18、01,地址范围是 41001H41FFFH 3.10 (有问题A0和BHE未画)按现有的连线地址为第一片 A19A13=1000000,地址范围是 80000H81FFFH_第二片 A19A13=1000001,地址范围是 82000H83FFFH_图3-1 8086CPU与存储器连接电路图第三片 A19A13=1000010,地址范围是 84000H85FFFH_第四片 A19A13=1000011,地址范围是 86000H87FFFH_图3-2 8086CPU与存储器连接电路图3.11 1)答:是译码功能。2). 3)答:ROM0、ROM1的地址范围。94000H97FFFH3.12答:存

19、储器(1)的地址范围为80000H80FFEH;存储器(2)的地址范围为80001H80FFFH。(题目有错,存储器(4)的地址范围为81001H81FFFH) 3.13 答:1)系统的存储容量为: B3FFFH-B0000H+1=4000H=16KB ; 2)需要6264芯片:(16K*8bit)/8K*8bit=2片;3)画出系统连接图。两片6264芯片的地址范围如表所示,高位地址A14A19参与译码形成两片6264的片选信号,奇地址存储器芯片和偶地址存储器芯片由A0和区分。存储器与系统总线的连接电路如图题3.13所示。A19A18A17A16A15A14A13A12A11A10A9A8A

20、7A6A5A4A3A2A1A01011000000000000000010110011111111111111图题3.13 存储器扩展电路3.14答:(不是8086系统)3.15在8086CPU组成的系统中,用4片2764(8K8 bit)存储芯片组成随机ROM存储系统,其第一片的首地址为(C000H:8000H),试画出存储器与CPU的连接电路图。答:第 四 章 80868088指令系统4.1答:机器语言的每一条指令是以二进制为代码的指令,它能够被计算机直接执行。汇编语言是用助记符或用符号来编写指令,是一种与机器语言一一对应的语言。机器不能直接执行程序,程序必须经过翻译,机器才能执行。高级语

21、言是面向过程的语言,它不依赖于特定的机器,独立于机器,用同一种高级语言编写的程序可以在不同的机器上运行而获得相同的结果。4.2请指出以下各指令的源、目的操作数所使用的寻址方式。(1)MOVSI,2100H 源:立即数寻址;目:寄存器寻址 (2)SBB BYTE PTR DISPBX,7;源:立即数寻址;目:寄存器相对寻址(3)ANDDI,AX 源:寄存器寻址;目:寄存器间接寻址 (4)ORAX,609EH 源:直接寻址;目:寄存器寻址 (5)MOV BXDI30H,CX 源:寄存器寻址;目:基址变址相对寻址 (6)PUSH ES:BP 源:寄存器间接寻址;目:隐含寻址(7)CALL DIDIS

22、P 寄存器相对寻址 (8)JNZShort_ label 直接寻址 (9)CBW BL (指令错) (10)MOV AX, 1000H 源:直接寻址;目: 寄存器寻址 (11)MOV AX, ARRAY BXSI;源:基址变址相对寻址;目:寄存器寻址(12)MUL BL 源:寄存器寻址;目: 隐含寻址 (13)MOV AX, BXSI 源:基址变址寻址;目:寄存器寻址 (14)MOV AL,TABLE 源: 直接寻址;目:寄存器寻址 (15)MOV AX,DISPBX+DI 源:基址变址相对寻址;目:寄存器寻址 (16)MOV AX,BX 源:寄存器间接寻址;目:寄存器寻址4.3答:基址寄存器

23、BX、基址指针寄存器BP、原变址寄存器SI、目的变址寄存器DI。4.4下列各条指令是否有错?如果有,请指出错误之处。(1) MOVDS,1000H 立即数不能直接给段寄存器送数(2) MOV 100,23H 目的操作数应指明类型,改为BYTE PTR 100 (3)ADDAX,BXBP6 存储器寻址不能有两个基地址BX,BP (4)PUSH DL 进栈是以字为单位 (5)INAX,3FH I/O接口地址不能加括号 (6)OUT3FFH,AL 口地址3FF应放在DX中 (7)LESSS,SI SS不能存放偏移量 (8)POPAX AX不用来做间址寄存器 (9)IMUL4CH 乘法中源操作数不能是

24、立即数 (10)SHLBX,5 移位超过1位应放在CL中 (11)INT300 立即数(向量码)应小于255 (12)XCHGDX,0FFFH 此指令中不能有立即数 (13)POP AL 出栈是以字为单位 (14)DIV 32H 除法中原操作数不能是立即数(15)MOV AX,BYTE PTRSI 源操作数和目的操作数不等宽 (16)MOV DX,DS:BP 正确 (17)MOV 128,CL 目的操作数不能为立即数 4.5设若标志寄存器原值为0A11H,SP=0060H,AL=4。下列几条指令执行后,标志寄存器、AX、SP的值分别是多少?PUSHF ;FSP ; SP=5EH , 5EH=0

25、A11H LAHF ;F低8AH ; AH=11HXCHGAH,AL ; AH 04H , AL=11H PUSHAX ; SP=5CH , 5CH=0411H,SAHF ;AHF低8 ; POPF ; SPF标志寄存器=0411H,AX= 0411H,SP=005EH4.6已知DS=2000H,有关的内存单元值为:(21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H,(23600H)=60H,(23601H)=30H,符号COUNT的偏移地

26、址为1200H。执行下列指令后,寄存器AX、BX、SI的值分别是多少?MOVBX,OFFSET COUNT BX=1200H MOVSI,BX SI=1000H MOVAX,COUNTSIBX AX=_3040H_,BX = _1200H_,SI=_1000H_4.7答:AX=322FH , 标志寄存器值为0410H4.8设单元DATA在内存数据段中的偏移量为24C0H,在24C0H24C3H单元中依次存放着55H、66H、77H、88H。下列几条指令执行后,寄存器AX、BX、CL、SI、DS的值分别是多少?MOVAX,DATA ; AX=6655H LEASI,DATA ; SI=24C0H

27、 MOVCL,SI ; CL=55H LDSBX,DATA ; DS=8877H,BX=6655H 4.9若AX=26D3H,CX=7908H,CF=1,OF=0,执行下列指令后,寄存器AX、CX的值分别是多少?_ AX=A74CH _ CX=FA08H _CF=_0_OF=_0_。SALCH,1 CH=FA,CL=08H RCRAX,CL AX=A726H , CF=1 ROLAL,1 AL=4CH , CF=0 4.10答:原串在数据段中,但可以段超越。目的串必须在附加段中。4.11答: M/=1;DT/=1;=1;=0;数据总线上的数是0508H;地址总线上的数分是49420H4.12

28、(与21题重)答:AL=23H,功能将压缩的BCD码转换为二进制。4.13 答:上述程序段执行后,字节单元HCOD的内容是43H;HCOD1的内容是35H。该程序段的功能是将压缩的十六进制转换为ASCII字符。4.14执行下面的程序段后,(CL)= 02H ,(AX)= 0040H 。XOR BX, BXMOV AX, 0010H MOV CL, 2SAL AL , CLMOV BL , ALSAL AL , CLADD AX , BX 4.15 问:(1)初值(AL)=37H时,程序段执行结果:(AL)= 07H (2)初值(AL)=9FH时,程序段执行结果:(AL)= 0FFH 4.16下

29、列程序段中,以X为首址的字单元中的数据依次为1234H、5678H;以Y为首址的字单元中的数据依次为8765H、4321H。阅读程序,给出必要的程序注释并完成程序后的问题。LEASI,X ;SI=0000HLEADI,Y ; DI=0004HMOVDX,SI2 ; DX=5678HMOVAX,X ; AX=1234HADDAX,X ; AX=2468HADCDX,SI2 ; DX=ACF0HCMPDX,DI2 ; ACF0H与8765H比JLL2 ;小于转移到L2CMPAX,Y ;大于2468H与4321比JLL1 ;小于转移到L1JMPEXIT ;无条件转移到EXITL1:MOVAX,1 ;

30、给AX送1JMPEXIT ;无条件转移到EXITL2:MOVAX,2EXIT:以上程序代码执行之后,AX= 2 ;DX= ACF0H 4.17答:程序将依次向堆栈压入的数据为0003H、0002H、0001H。该程序段实现了将二进制转换十进制功能。4.18答:程序功能是计算AX=110,BX=10H起的累加和。AX=10,BX47H,CX=0。MOV AX , 0000HMOV BX , 0010HMOV CX ,10 LP: INC AXADD BX , AXLOOP LPHLT4.19答:以上程序代码执行之后,AX= 2 ;DX= ACF0H 4.20阅读下列程序段,给出必要的程序注释并完

31、成程序后的问题。 ADD AL,AL ;2*AL ADD AL、AL ;4*AL MOV BL,AL ;ALBL SAL BL,1 ;8*AL ADD AL,BL ;12*AL HLT(1)该程序段的功能是什么? 答:把AL中的内容乘以12 (2)设AL的初值为0AH,执行该程序段后,AL为多少? 答:AL78H4.21已知有程序段如下:(与12题重)(1)该程序段的功能是什么? 答:将BCD码转换成二进制 (2)执行该程序段后,AL 23H 4.22、下列程序段要求在内存40000H开始的顺序30个单元中存放着8位无符号数,将它们的和放在DX中,试填空完成该程序(并加入必要的注释)或自行编制

32、一段程序完成上述功能。 MOV AX,4000H ; MOV DS,AX ; 送段首地址 MOV SI,0000H ; 送偏移量 MOV CX, 30 ; 送循环次数 XOR AX,AX ; 清零 GOON: ADD AL, SI ; 两数相加 ADC AH,00H ; 加进位位 INC SI ; 修改地址 DEC CX ; 计数器减1 JNZ GOON ; 不为零循环 MOV DX ,AX ; 结果送DX 4.23在AL中有一个十六进制数的ASCII码,完成下面程序段在每一空白处填上一条适当指令(并加入必要的注释),实现将AL中的ASCII码转换成二进制数。 CMP AL,3AH ; 与3A

33、H 比较 JC DONE ; 小于转移到DONE SUB AL,7 ; 大于减7 DONE:SUB AL,30H ; AL减30H HLT 4.24已知附加段中有一块长50个字的数据区,首址为DEST。欲编程将它们全部初始化为0FFFFH值,试在下面程序段的空白处填上适当的指令或操作数(并加入必要的注释),以实现上述功能。 LEA DI,DEST ; 取DEST偏移量MOVCX, 100 ; 送计数值CLD ; 清方向标志位,DF=0MOVAL,0FFH ; 将AL0FFHREP STOSB ; 将送100个字节FFH到首址为DEST区域4.25已知附加段中有一块长50个字的数据区,首址为DE

34、ST。欲编程将它们全部初始化为0FFFFH值,试在下面程序段的空白处填上适当的指令或操作数(并加入必要的注释),以实现上述功能。(与24题重) DI,DEST ; MOVCX, ; CLD ; MOVAL,0FFH ; ; 4.26附加段中有某字符串首址为BLOCK,长17个字节。欲查找其中第一次出现字符“e”的位置,并将该位置所在的偏移量入栈保护。试在下面程序段的空白处填上适当的指令(并加入必要的注释)或操作数以实现上述功能。MOVDI, OFFSET BLOCK ; 送BLOCK 的偏移量 MOVAL, 65H ; 送eASCII码 MOVCX, 17 ; 送计数值 CLD ; 方向标志位

35、清零 REPNZ SCASB ; 寻找e JNEOTHER ; 找到e转到OTHER DECDI ; 修改地址 PUSH DI ; 偏移量入栈保护 OTHER:(略)4.27已知有某字串BUF1的首址为0000H,BUF2的首址为0010H,数据段与附加段重合。欲从BUF1处开始将10个字数据顺序传送至BUF2处,试在下面程序段的空白处填上适当的指令或操作数以实现上述功能。LEASI,BUF1 ; 送BUF1的偏移量 ADDSI, 12H ; 地址移动到字符串最后 LEADI,BUF2 ; 送BUF2的偏移量ADDDI, 12H ; 地址移动到字符串最后STD ; 方向标志位清零MOVCX,

36、10 ; 送计数值 REP MOVSW ; 进行串操作4.28在DAT和DAT1两个字节变量单元中有两个十进制数的ASCII码,编程实现将这两个ASCII码转换为两个BCD码,并以压缩形式存放在REST字节变量单元中。试填写该程序划线部分,并加入必要的注释。 MOV AL,DAT ;取第一个数 SUB AL,30H ;将ASCII码转为BCD码 MOV CL,4 ; 送移位数 SHL AL,CL ;将BCD码放在AL高四位中 MOV BL,DAT1 ;取第二个数 SUB BL,30H ;将DAT1中的ASCII码转为BCD码 OR AL,BL ;将两个BCD码合并在AL寄存器中 MOV RES

37、T,AL ;将压缩形式的BCD码存人REST中 HLT第 五 章 汇编语言程序设计5.1 答:标号在指令性指令的名字,写在指令前面,标号后必须有冒号。变量在伪指令前是定义某一数据区所起的名字,它后面不带冒号。标号和变量都有段、偏移量的属性,标号的类型是远和近型,变量的类型是字节、字、双字等。07H0100H ADD100H00H00H01H00H00H00H01H2018H ADD204H05H05H05H05H07H01H2068H ADD3题5.3图5.2 答:指令性指令是给CPU的命令,它是由汇编程序翻译成机器语言指令,在程序运行时由CPU来执行,每条指令都对应CPU一种特定的操作。伪指

38、令不汇编成机器语言,仅仅在汇编过程中告诉汇编程序应如何汇编。5.3 答:ADD1、ADD2、ADD3的段基址为1000H;ADD1、偏移量为2000H、类型为双字;ADD2、偏移量为2018H、类型为字节;ADD3、偏移量为2068H、类型为字。5.4 答:分配情况如右图02H1006H ADD112H9AH1009H ADD256H42H41H题5.4图5.5答:(定义了堆栈段81字节、数据段(17字节)和代码段)05H0100H ADD105H050127H题5.6图5.6答:ADD1占有多少个字节5.7答: 1依据设计任务,抽象出描述问题的数学模型。2确定实现数学模型的算法或求解的具体步

39、骤和方法。3绘制出程序流程框图。 4分配存储空间及工作单元(包括寄存器)。确定数据段、堆栈段、代码段及附加段在内存中的位置。 5依据流程图编写程序。6静态检查。7上机调试。8程序运行,结果分析。5.8 答: 源程序结构一般包括4个段,它们是代码段、数据段、附加段和堆栈段。其中代码段是必须存在的,其余段视具体情况而定。一般用到四种程序结构:顺序结构,分支结构,循环结构,子程序结构。5.9 答: XOR AX, AX MOV DX , 0MOVAH,45HMOVDL,AHANDDL,0FH ADD DL, 30HANDAH,0F0H MOVCL,4SHRAH,CLADD DL, 30HADDAX,

40、DXHLT94H DATA116H26H89H30H DATA255H04H74H RES5.10 答: MOV AL , A MOV BL , B IMUL BL MOV CX , C ADD AX , CX SUB AX , 18 HLT (1)从DATA1单元开始,将8个组合BCD码累加起来,其和(超过1字节)存入以RES为首址的单元中(低位在前)。 图5-1 5.11题图(2)将它们看作2个分别以DATA1、DATA2为首址的4位十进制数(低位在前),求此两数之差并存入以RES为首址的单元中。答: 1、 LEA SI , DATA1 2、LEA SI , DATA1 LEA DI ,

41、DATA2 LEA DI , DATA2 LEA BX , RES LEA BX , RES MOV CX ,7 XOR AX , AX XOR AX , AX MOV AX , WORD PTR SI MOV AL , BYTE PTR SI ADD AX , WORD PTR DI AA1:INC SI MOV DX , WORD PTR SI+2 ADD AL , BYTE PTR SI ADC DX , WORD PTR DI+2 ADC AH , 0 MOV WORD PTR BX , AX LOOP AA1 MOV WORD PTR DI+2 , DX MOV WORD PTR B

42、X , AX HLT HLT 5.12 答:根据各种条件判断和比较进行操作,满足条件去做一种操作,不满足条件去做另一种操作。每一种操作程序称为一个分支,一次判断产生两个分支,只有一次判断的称为单重分支程序。多次判断产生多个分支,称为多重分支程序。5.13 答:MOV AL,DAT AND AL,DAT JNS POSI ;若为正数转POS1 TEST AL,01H ;测试负数的奇偶性 JZ M ;若为负偶数转M OR AL,BUF ;若为负奇数进行或运算 JMP DONEM:XOR AL,BUF ;负偶数进行异或运算 JMP DONE POSI:TEST AL,01H ;判断正数的奇偶性 JZ

43、 N ;为正偶数,转N ADD AL,BUF ;为正奇数进行加运算 JMP DONEN:AND AL,BUF ;正偶数进行与运算DONE:MOV BUF,AL HLT5.14 答:实现的方法仍是两两进行比较判断。其步骤是:先取出X,Y,Z,假设存于AL,BL,CL寄存器中。采用两数比较换位法,即AL中的数和BL, CL分别进行比较,在AL中总是存放中间值。程序段及流程图如右图所示: MOV AL,DAT1 MOV BL,DAT11 MOV CL,DAT12 CMP AL,BL JB LP1 XCHG AL,BL LP1:CMP AL,CL JAE SAV XCHG AL,CL CMP AL,B

44、L JB SAV XCHG AL,BL SAV:MOV BUF1,ALMOV DL,AL; MOV AH,02H INT 21H HLT5.15 答:LEA SI , ADD1 LEA DI , ADD2 XOR AX , AX MOV AL,BYTE PTRSI CMP AL,30 JB AA MOV BYTE PTRDI,2 JMP DONEAA:CMP AL,1JNB BB MOV BYTE PTRDI,0 JMP DONE BB:MOV BYTE PTRDI,0FEHDONE:HLT5.16 答:循环程序包函循环初始化、循环体和循环控制3部分。循环初始化是对地址指针寄存器、循环次数的计

45、数初值的设置,以及其它为能使循环体正常工作而设置的初始状态等。循环体是循环操作(重复执行)的部分,由循环工作部分和修改部分组成。循环工作部分是为实现程序功能而设计的主要程序段,该段程序在整个操作中要反复执行多次。可能有多个指令语句构成,也可以仅有一个指令语句构成。循环的修改部分是指当程序循环执行时,对一些参数如地址、变量等进行有规律的修正。循环控制部分是用于判断循环程序是否结束,若结束则退出循环程序,否则修改地址指针和计数器值,继续进行循环程序。循环控制的选择可以有多种方案,在循环控制条件及循环次数的控制,可以采用循环指令LOOP、LOOPZ和LOOPNZ指令来实现,也可以用指令DEC CX和

46、JNC 标号两条来实现。其特点是需要多次重复进行某些操作。5.17 答:LEA BX,DAT MOV CX,100LP1:MOV AL,BX MOV AH,20H AND AL,AH MOV AL,0DFH JNZ DAX XIAO:OR BX,AH JMP PP DAX:AND BX,ALPP:INC BX LOOP LP1 DONE:HLT5.18 答:DATA SEGMENT LED1 DB 3FH,06H,5BH,4FH,66H,6DH,3DH,07H,7FH,6FH DATA ENDSCODE SEGMENT ASSUME CS:CODE , DS:DATA START: LDS S

47、I , LED1 AA1: MOV CL , 10AA2: MOV AL , SIINC SI OUT 40H , AL LOOP AA2 JMP AA1: CODE ENDS 5.19 答:MOV AX , 2000H MOV DS , AXMOV AX , 5000HMOV ES , AXMOV SI , 1000HMOV DI , 8000HMOV CX , 300REP MOVSW HLT5.20 答: LAE SI,ADD1 MOV CX,100 XOR BX,BX STAR:MOV AX,SI TEST AX,8000H JZ JSH INC BL JMP DONE JSH:INC

48、 BH DONE:ADD SI,2 DEC CX JNZ STAR MOV DD1,BL MOV DD2,BH HLT 5.21 答:MOV DX , 0000HMOV BX , 0000H MOV CX , 80 LEA SI , DATAB LEA DI , BTRXGOON: MOV AL , SI CMP AL , 90 JC NEXT3 INC DH JMP STORNEXT3: CMP AL , 80JC NEXT4 INC DL JMP STORNEXT4: CMP AL , 70JC NEXT5 INC BL JMP STORNEXT5: CMP AL , 60JC NEXT6

49、 INC BH JMP STORNEXT6: INC AHSTOR:INC SI LOOP GOON MOV DI , DH MOV DI+1 , DL MOV DI+2 , BH MOV DI+3 , BL MOV DI+4 , AH HLT2) LEA SI , DATAB LEA DI , LEVT MOV CX , 79 MOV AL , SI AA1:INC SI ADD AL , SI ADC AH , 0 LOOP AA1 MOV BL , 80 DIV BL MOV DI , ALHLT5.24 答:MOV BL,0 LEA SI,BUF MOV CX,0FFH LP:MOV AL,SI CMP AL,30H JB TJ CMP AL,39H JNB AA1 CMP AL , 41H JB TJ CMP AL,5AH JA TJ INC DL JMP DONE AA1:INC BH JMP DONE TJ:INC BL DONE:INC SI LOOP LP MOV SI+0100H,BL MOV SI+0101H,BH ; (09) MOV SI+0102H,DL ;(AZ) HLT 20

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!