2021年度兰州理工大学微机原理习题集作业答案章.pdf
兰州理工大学微机原理习题集作业答案章1第章微 观 计 算 机 概 论1.1、答:微型计算机系统涉及硬件系统和软件系统两大某些。硬件系统涉及:微型计算机、外部设备、电源及其他辅助设备。软件系统涉及:系统软件和应用软件。微型计算机也称为主机,主机涉及:微解 决 器、存 储 器、输 入/输 出 接 口(Input/Output),微解决器通过系统总线和存储器、输入/输出接口进行连接。微解决器(Microprocessor U nit)简称为MPU(或者称为M P),它是一种中央控制器(Central Processing Unit),简称 CPU。它是微型计算机核心部件,它将运算器、控制器、寄存器通过内部总线连接在一起,并集成在一种独立芯片上。1.2、答:单片机是将CPU、ROM、RAM以及I/O接口电路以及内部系统总线等所有集中在一块大规模集成电路芯片上,就构成了单片机。单板机是将微解决器芯片、存储器芯2片、I/O接口芯片及少量输入输出设备(键盘,数码显示屏)安装在一块印制板上构成一台微型计算机。由多块印制板构成微机称为多板机。1.3、完毕下列转换(保存4位小数)(21.32)10=(10101.0101)2=(25.2436)8=(15.51EB)1650.38D=110010.0110 B=62.3024 Q=32.6147 H1.4,完毕下列计算已知X=-63,Y=59则 X b=B FH(10U U U B),X反=C0H(B),X k=C lH (11000001B)Y原=3BH(00111011B),Y反=3BH(00111011B),Y补=3BH(00111011B)X+Y补=0FCH(11111100B),X-Y 补=86H(lOOOOHOB)o X补+Y补=0FCH(11111100B),X补 一 g补=86H(lOOOOHOB)o1.5、答:浮点数是指小数点在数值中位3置不是固定不变,实际位置将随阶码而浮动,用这种办法表达数,称为浮点数。定点数是指小数点在数值中位置固定不变。1.6、答:压缩BCD码是4位二进制表达一位十进制数而非压缩BCD码是8位二进制表达一位十进制数。1.7.写出下列数值压缩BDC码、非压缩BDC 码、ASCII 码值。(改为 15,29)15=15H压缩BCD码=0105 H 非 压 缩 此 口 码 二3135 H Ascn 码29=29H压缩 BCD 码=0209H非压缩 BCD 码二3239H ASCII 码第二章 8086/8088微 解 决 器2.1答:从功能上讲由两某些构成总线接口单元BIU和执行单元EU构成。总线接口单元(BIU)是微解决器内部与存储器和I/O接口传送信息通道,总线接口4单元负责从内存中将指令送到指令队列中;负责把数据从内存或I/O接口送到执行单元(EU);负责将执行单元运营成果送到内存或I/O接口。EU功能是负责译码和执行指令。2.2 答:指令队列(Queue)存储预取指令,采用预取指令办法将减少微解决器等待时间,提高运营效率。8086CPU中指令队列有6个;8088 CPU中指令队列有只有4个。2.3 答:8086/8088 CPU 中有 16 个 16 位寄存器。4个段地址寄存器是代码段寄存器CS;数据段寄存器DS;堆栈段寄存器SS和扩展段寄存器ES o它们是用来存储每一种段首地址(段基地址)。一种指令指针寄存 器I P是用于存储要执行指令偏移地址,它不能作为普通寄存器使用。一种标志寄存器(又称为程序状态寄存器)用于反映指令执行成果或控制指令执行形式。)有8个通用寄存器,通用寄存器分为数据寄存器与指针和变址寄存器两组。数据寄存器涉及AX5(累加器)、BX(基址寄存器)、CX(计数器)和 DX(数据寄存器),普通用来存储16位数据,故称为数据寄存器。其中每一种又可依照需要将高8 位和低8 位提成独立两个 8 位寄存器来使用,即 A H、B H、C H、D H 和 A L、B L、C L、D L 两组,用于存储8 位数据,它们均可独立寻址、独立使用。数据寄存器用来存储计算成果和操作数,也可以存储地址。指针寄存器涉及堆栈指针寄存器SP、基址指针寄存器B P 普通用来存储地址偏移量和用于寻址内存堆栈内数据变址寄存器涉及原变址寄存器SI和目变址寄存器D L 普通用来存储地址偏移量为存储器寻址时提供地址。2.4 答:标志寄存器又称为程序状态寄存器,是一种1 6 位寄存器,标志寄存器设立了 9 个标志位。这 9 个标志位按功能分可以分为两类:一类为状态标志,状态标志表达执行某种操作后,A L U 所处状态特性,这6些状态标志会影响背面详细操作。状态标志有 6 个:CF、AF、SF、PF、OF 和 ZF。另一类为控制标志,用 来 控 制CPU操作,反映存储器地址变化方向、与否容许中断及在执行程序时与否进行单步中断。控制标志有3个:DF、IF和T F控制标志是人为设立,每个控制标志都对某种特定功能起控制作用。2.5答:8086与8088有3点不同之处;1.8086有16条数据线而8088只有8条数据线,2.8086诉/M X而 8088“N/菽。3.8086“/75而8 0 8 8M/O.2.6答:堆栈是在内存中开辟一种特定区域,用 以 存 储CPU寄存器或存储器中暂时不用数据和有用信息。在数据段和附加段存储数据时,普通是从低地址开始向高地址存储数据,而 用PUSH指令向堆栈中存储数据时总是从高地址开始逐渐向低地址方向增长。堆栈指令遵循“先进后出”,“后进先出”原则,凡 是 用PUSH指令最后推入堆栈数7据,用 PO P指令弹出时最先出栈。在操作时是以字为单位。2.7 答:8086/8088 CPU各有20根地址总线,可寻址范畴是1M个存储单元。8086CPU有 1 6 根数据,一次可以读一种字也可以读一种字节。8088 CPU有 8 数据总线一次以读一种字节。2.8 答:1.物理地址就是实际地址,它具备 20位地址值,它是唯一标志1MB存储空间某一单元地址。2.逻辑地址由段基址和偏移量构成。程序以逻辑地址编址,而不是物理地址。3.在8086/8088存储空间中,把 16个字节存储空间看作一节。为了简化操作,规定各个逻辑段从节整数边界开始,也就是说段首地址低4 位应当是“0”,因而把段首地址高16位称为“段基值”。4.偏移量是该物理地址距离段首地址单元数。2.9 答:总线上传播信号一组导线,作为微机各部件之间信息传播公共通道。系统总线按功能分数据总线、地址总线、控制总线。82.10 答:1.8086/8088 CPU把存储器分为代码段、数据段、堆栈段、附加段。由于8086/8088寄存器是1 6 位,最大只能寻址64K个单元存储空间,为了增大寻址空间把存储器进行分段,这样就可以寻址1MB存储空间。2.每段最大空间为64KB。2.11 答:(1)2300H;1010H;24010H(2)0000H;1000H;01000H(3)2AE0H;1690H;2C490H(4)7369H;0010H;736A0H2.1 2 答:1.数据段首地址是1H末地址是21FFFEL2.附加段首地址是20A30H末地址是30A2FH o 3.代 码 段 首 地 址 是470E0H=470EHxl0H 末地址是570DFH=(470E0H+FFFFH)。2.13 答:8086/8088 CPU复位后来,除代码段寄存器外,别的标志寄存器、指令指针寄存器、各段寄存器及指令对列所有被清零。2.14 答:在一种读总线周期ALE在第一9种时钟周期为高电平,别的周期为低电平。丽/S7在第一种时钟周期为低电平,别的周期为高电平。而在第一种时钟周期为低电平,第二、三周期为高电平。标始终为高电平。M/历 始终为高电平。DT 左始终为低电平。2.15答:1.8086 CPU读/写总线周期时,至少包括4 个时钟周期。2.CPU在 T 3状态前沿(下降沿)对 Ready信号进行采样。若CPU在 T 3状态开始采样到Ready信号为低电平,那么将在T 3和 T 4之间插入等待状态TWo 3.T w可以是一种,也可以是各种。CPU在每个Tw前沿处对Ready信号进行采样。当在T w状态采样到READY信号为高电平时,在当前T w状态执行完,进入T 4状态。第三章 存储器3.1 答:L 容量:存储器芯片容量是以1位二进制数(b it)为单位,因而存储器容量是指每一种存储器芯片所能存储二进制数位数。(存储器容量二存储单元数X 位数)10芯 片 数 则)=9 2.存储速度:存储器基本操作芯片容量是读出与写入,称 为“访问”或“存取”。存储器存储速度有两个时间参数:(1)访问时间(Access Time)TA从启动一次存储器操作,到完毕该操作所经历时间。(2)存储周期(Memory Cycle)TM c启动两次独立存储器操作之间所需最小时间间隔。3.存储器可靠性:4.性能/价格比:5.其她指标(存储器选取有时还应考虑功耗、集成度等指标)。3.2答:按存储器读写功能分可以分为随机读写存储器(RAM)和只读存储器(R0M)o随机读写存储器RAM可以随机地按指定地址从存储单元存入或读取(简称存取)数据,存储在RAM中信息,一旦掉电就会丢失。随机读写存储器RAM可分为静态随机存取存储器SRAM、动态随机存取存储器DRAM和集成随机读写存储器IRAMo只读存储器(ROM)基本特性是在正常运营11中只能随机读取预先存入信息,虽然在断电状况下,ROM仍能长期保存信息内容不变,因此它是一种永久存储器。只读存储器(ROM)可分为掩膜只读存储器(Mask ROM)可编程只读存楮器(PROM)、紫外线可擦除可编程只读存储器(EPROM)、电可擦除编程只读存 储 器(E2PROM)和迅速可擦编成只读存 储 器(Flash EPROM)o掩膜只读存储器其构造简朴,存储信息稳定,可靠性高,可以永久性保存信息;可编程只读存储器是由半导体厂家制作“空白”存储器阵列(即所有存储单元所有为1或所有为0状态)出售,顾客依照需要可以实现现场编程写入,但只能实现一次编程;紫外线可擦编程只读存储器、电可擦除编程只读存储器和快可擦编程只读存储器等不但可以现场编程o还可以擦除原存储信息内容,写入新信息。3.3答:SRAM特点是在一种存储单元所用晶体管数目多,但不需要刷新电路。DRAM特点是在一种存储单元所用晶体管数目少,但需要刷新12电路。IRAM特点是将动态随机存取存储器和刷新电路集成在一片芯片中,它即具备SRAM速度快长处,又具备DRAM便宜。IRAM事实上是附有刷新电路DRAMo它在当代微机系统中得到广泛应用,大容量内存普通都是用IRAM。3.4答:1)13条地址线和4条数据线;2)19条地址线和1条数据线3)1 7条地址线和4条数据线;4)15条地址线和8条数据线3.5 答:1)RAM 存储容量为 256Kx8 bit;2)有18条地址线和8条数据线;3)若采用6116需要128片,若采用6264需要32片,若采用62128需要16片,若采用2114需要512片,若采用2141需要512片。3.6 答:1)ROM存储容量为512Kx8bit;2)需要19条地址线和8条数据线;3)若采用2764需要64片,若采用27128需要3 2片,若采用2816A需要256片,若采用28F256需要16片。3.7 答:惯用存储器片选控制办法有线13选法、全译码法和某些译码法。线选法地址线可以不用完,也无需专门译码电路。但由于高位地址线可随意取值0或l o因此,存在地址重叠,并且导致存储器地址不能持续分布。全译码法所有地址线均参加地址译码,芯片地址线直接和低位地址总线相连,高位地址总线经译码器或逻辑电路与各芯片片选信号相连。某些译码法与全译码法类似,只是高位地址线中有一某些进行译码,产生片选信号,而不是所有。这种办法称为某些译码法。3.8 答:第一片首地址为21000H(错),末 尾 地 址 为24FFEH o第二片首地址为21001H,末尾地址为24FFFHo第三片首地址 为25000H,末尾地址为28FFEH。第四片首地址为25001H,末尾地址为28FFFHo3.9 第一片 A19-A12=01000000,地址范畴是 40000H-40FFEH第 二 片A19-A12=01000000,地址范畴是1440001H-40FFFH第三片A19A12=0100000L地址范畴是41000H-41FFEH第四片Ai9-A12=01000001,地址范畴是 41001H-41FFFH3.10(有问题A0和 BHE未画)按既有连线地址为第一片A”Ai3=1000000,地址范畴是80000H 81FFFH_第 二 片A19A13=1000001,地址范畴是8H-83FFFH_WRRDD0D7DgDi58086CPUAAI-J l P P CE 6116(1)7CE 2716(3)OE Dr D,Aw AoCE 6116(2)WR而 D8DISAw-ACE 2716(4)OE D8-DI5WROE DO-D7图 2-1 RORRCPU M 在 他 盥 滓 悴 由 感 图第 三 片 A19-A13=1000010,地址范畴是84000H-85FFFH15第四片A19 A13=1OOOO1L地址范畴是86000H-87FFFHA|2A,|A19A nAlslo/MA,6A,.A HA I JW R丽8086CPDR-D5DO-DTA12 1 AoCS 6264(1)WE丽 M D?译码器G-0G-ICBAC JS 6264(4)j wI 而 DQD7图3-2 8 0 8 6 C P U与存储器连接申路图3.111)答:是译码功能。2).MIOA|9AISCPU A,78 0 8 6 tAMAoBHEWRRDDD:A”MK RAM)3 6264RDWR ne译码器AB5-GcBADkDi53)答:ROM。、ROMi地址范畴。94000H-97FFFH3.1 2 答:存 储 器(1)地址范畴为80000H-80FFEH;存储器(2)地址范畴为1 680001H-80FFFHo(题目有错,存储器(4)地址范畴为81001H-81FFFH)3.1 3 答:1 )系 统 存 储 容 量 为:B 3 F F F H-B 0 0 0 0 H+1=4 0 0 0 H=1 6 K B ;2 )需 要 6 2 6 4 芯 片:(1 6 K*8 bit)/8 K*8 bit=2 片;3)画出系统连接图。两片6 2 6 4 芯片地址范畴如表所示,高位地址A 1 4-A 1 9 参加译码形成两片6 2 6 4 片选信号,奇地址存储器芯片和偶地址存储器芯片由A 0 和除区别。存储器与系统总线连接电路如图题3.13 所示。A19 A18 A17 A16 A15 A14 A13 A12 All A10 A9 A8 A7 A6 A5 A4 A3 A2 Al AO1 0 1 1 0 0 0 0 0 000000000001011001111111111111117CS1Do.D?1816151-4DRAAAAREwpuBHEA。D(广 D7DgD|5&译码器G-G-G 2CBAA12,e Ao-WEOE 6264(1)O-L CS2A12 AoWEOE 6264(2)CS2CS1D0.D7图题3.13存储器扩展电路3.14 答:(不是8086系统)AirAuA”M.ioA11C P U A;,RDWR3.15 在 8086CPU构成系统中,用 4 片 2764(8Kx8 bit)存储芯片构成随机ROM存储系统,其第一片首地址为(C000H:8000H),试画出存储器与CPU连接电路图。18nI6I5U-DAAAA-Ru,P译码罂-G-5-5CBA第 eg 章 8086/8088指 令 系 统4.1 答:机器语言每一条指令是以二进制为代码指令,它可以被计算机直接执行。汇编语言是用助记符或用符号来编写指令,是一种与机器语言一一相应语言。机器不能直接执行程序,程序必要通过翻译,机器才干执行。高档语言是面向过程语言,它不依赖于特定机器,独立于机器,用同一种高档语言编写程序可以在不同机器上运营而获得相似成果。4.2 请指出如下各指令源、目操作数所使用寻址方式。(1)MOV SI,2100H 源:及时数寻址;目:寄存器寻址(2)SBB BYT E PT R DISPBX,7;源:19及时数寻址;目:寄存器相对寻址(3)AND DI,AX 源:寄存器寻址;目:寄存器间接寻址(4)ORAX,609EH 源:直接寻址;目:寄存器寻址(5)MOV BX+DI+30H,CX 源:寄存器寻址;目:基址变址相对寻址(6)PUSH ES:BP 源:寄存器间接寻址;目:隐含寻址(7)CALL DIDISP 寄存器相对寻址(8)JNZ Short,label 直接寻址(9)CBW BL(指令错)(10)MOV AX,1000H 源:直接寻址;目:寄存器寻址(11)MOV AX,ARRAY BXSI;jg:基址变址相对寻址;目:寄存器寻址(12)MUL BL20源:寄存器寻址;目:隐含寻址(13)MOV AX,BXSI 源:基址变址寻址;目:寄存器寻址(14)MOV AL,T ABLE 源:直接寻址;目:寄存器寻址(15)MOV AX,DISPBX+DI 源:基址变址相对寻址;目:寄存器寻址(16)MOV AX,BX 源:寄存器间接寻址;目:寄存器寻址4.3 答:基址寄存器BX、基址指针寄存器 BP、原变址寄存器SI、目变址寄存器DE4.4 下列各条指令与否有错?如果有,请指出错误之处。(1)MOV DS,1000H 及时数不能直接给段寄存器送数(2)MOV 100,2 3 H 目操作数应指明类型,改为BYT E PT R 1001(3)ADD AX,BX+BP+6 存储器寻址不能有两个基地址FBX,BPI(4)PUSH DL21进栈是以字为单位(5)IN AX,3FH I/O 接口地址不能加括号(6)OUT 3FFH,AL 地址3FF应放在DX中(7)LES SS,SI SS不能存储偏移量(8)POP AX AX不用来做间址寄存器(9)IMUL 4CH 乘法中源操作数不能是及时数(10)SHL BX,5移位超过1 位应放在CL中(11)INT 300 _及时数(向量码)应不大于255(12)XCHG DX,0FFFH此指令中不能有及时数(13)POP AL出栈是以字为单位(1 4 )DIV32H22除法中原操作数不能是及时数(15)MOV AX,BYT E PT RSI(16)MOV DX,DS:BP对的(1 7 )MOV 128,CL目操作数不能为及时数4.5 设若标志寄存器原值为0AUH,SP=0060H,AL=4o下列几条指令执行后,标志寄存器、AX、SP值分别是多少?PUSHF;FSP;SP=5EH,5EH=OA11HLA HF;F 低 8 fAH;AH=11HXCHGAH,AL;AH04H,AL=11HPUSH AX;SP=5CH,5CH=0411H,SAHF;AH F 低823POPF;S P f F标 志 寄 存 器=0411H,AX=0411H,SP=005EH4.6 已知 DS=H,关于内存单元值为:(21000H)=00H(21200H)=00H(23200H)=20H(23400H)=40H(21001H)=12H(21201H)=10H(23201H)=30H(23401H)=30H(23600H)=60H,(23601H)=30H,符号COUNT 偏移地址为1200Ho执行下列指令后,寄存器AX、BX、SI值分别是多少?MOV BX,OFFSET COUNTBX=1200HMOV SI,BXSblOOOHMOV AX,COUNT SIBXAX=3040H,BX=1200H,SI=1000H 4.7答:AX=322FH,标志寄存器值为0410H244.8 设单元DAT A在内存数据段中偏移量为24C0H,在 24coH24c3H单元中依次存储 着 55H、66H、77H、88H。下列几条指令执行后,寄存器AX、BX、CL、SI、DS值分别是多少?MOV AX,DAT A;AX=6655HLEASI,DAT A;SI=24C0HMOV CL,SI;CL=55HLDS BX,DAT A;DS=8877H,BX=6655H4.9 若 AX=26D3H,CX=7908H,CF=1,O F=0,执行下列指令后,寄存器AX、CX值 分 别 是 多 少?AX=A74cHCX二 FAO8H _CF=_0_OF=_0_oSAL CH,1CH=FA,CL=08HRCR AX,CL AX=A726H,CF=1ROL AL,1AL=4CH,25CF=O4.10 答:原串在数据段中,但可以段超越。目串必要在附加段中。4.11 答:M/7d=l;DT/=1;而=1;w=0;数据总线上数是0508H;地址总线上数分是49420H4.12(与 21题重)答:AL=23H,功能将压缩 BCD码转换为二进制。4.13 答:上述程序段执行后,字节单元 HCOD内容是43H;HCOD+1 内容是35Ho该程序段功能是将压缩十六进制转换为 ASCII字符。4.1 4 执行下面程序段后,(CL)=02H,(AX)=0040H oXOR BX,BXMOV AX,0010HMOV CL,2SAL AL,CLMOV BL,ALSAL AL,CL26ADD AX,BX4.15 问:(1)初 值(AL)=37H时,程序段执行成果:(AL)=07H(2)初 值(AL)=9FH时,程序段执行成果:(AL)=OFFH4.16 下列程序段中,以 X 为首址字单元中数据依次为1234H、5678H;以 Y 为首址字单元中数据依次为8765H、4321Ho阅读程序,给出必要程序注释并完毕程序后问题。LEA SI,X;SI=OOOOHLEA DI,Y;DI=0004HMOV DX,SI+2;DX=5678HMOV AX,X;AX=1234HADD AX,X;AX=2468HADC DX,SI+2;DX=ACF0HCMP DX,DI+2;ACFOH与 8765H比27JL L2移到L2CMP AX,Y2468H 与 4321 比JL LI移到LIJMP EXIT到 EXITLI:MOV AX,1送 1JMP EXIT到 EXITL2:MOV AX,2EXIT:.;不大于转;不不大于;不大于转;无条件转移;给 AX;无条件转移以上程序代码执行之后,AX=2;DX=ACFOH4.17 答:程序将依次向堆栈压入数据为 0003H、0002H、OOOlHo该程序段实现了将二进制转换十进制功能。4.18 答:程序功能是计算AX=l10,BX=10H28起累加和。AX=10,BX=47H,CX=OoMOV AX,0000HMOV BX,0010HMOV CX,10LP:INC AXADD BX,AXLOOP LPHLT4.19答:以上程序代码执行之后,AX=2;DX=ACF0H4.2 0 阅读下列程序段,注释并完毕程序后问题。ADD AL,ALADD AL、ALMOV BL,ALSAL BL,1ADD AL,BLHLT给出必要程序0 A L;4*AL;A L f BL;8*AL;12*AL(1)该程序段功能是什么?答:把 A L 中内容乘以1229(2)设 AL初值为OAH,执行该程序段后,AL为多少?答:AL=78H4.21 已知有程序段如下:(与 12题重)(1)该程序段功能是什么?答:将 BCD码转换成二进制(2)执行该程序段后,AL=23H4.22 下列程序段规定在内存40000H开始顺序30个单元中存储着8位无符号数,将它们和放在DX中,试填空完毕该程序(并加入必要注释)或自行编制一段程序完毕上述功能。MOV AX,4000H;MOV DS,AX;送段首地址MOV SI,0000H;送偏移量MOV CX,_30_;送循环次数XOR AX,AX;清零30GOON:ADD AL,;两数相加ADC AH,OOH;加进位位INC SI;修改地址DEC CX;计数器减1JNZ GOON;不为零循环MOV DX,AX;成果送DX4.23在 AL中有一种十六进制数ASCII码,完毕下面程序段在每一空白处填上一条恰当指令(并加入必要注释),实现将AL中ASCII码转换成二进制数。CMP AL,3AH;与3A H 比较_ _ _ _ _ _ _JC DONE;不大于转移到DONE31SUB AL,7不不大于减7DONE:SUB AL,30H;AL减 30HHLT4.24 已知附加段中有一块长50个字数据区,首址为DEST。欲编程将它们所有初始 化 为 0FFFFH值,试在下面程序段空白处填上恰当指令或操作数(并加入必要注释),以实现上述功能。LEA DI,DEST偏移量MOV CX,100CLD标志位,DF=0MOV AL,OFFH;取 DEST;送计数值;清方向OFFHREP ST OSB;将送100个字节FFH到首址为DEST 区域4.25 已知附加段中有一块长50个字数32据区,首址为DEST。欲编程将它们所有初始化为OFFFFH值,试在下面程序段空白处填上恰当指令或操作数(并加入必要注释),以实现上述功能。(与 24题重)DI,DEST ;MOV CX,;CLD;MOV AL,OFFH;4.2 6 附加段中有某字符串首址为BLOCK,长 1 7 个字节。欲查找其中第一次浮现字符“e”位置,并将该位置所在偏移量入栈保护o试在下面程序段空白处填上恰当指令(并加入必要注释)或操作数以实现上述功能。MOV DI,OFFSET BLOCK;送 BLOCK偏移量MOV AL,65H;送 eASCH码MOV CX,17;J I33计数值CLD;方向标志位清零REPNZ SCASB;寻找eJNE OT HER;找至!J e 转 至!J OT HERDEC DI;修改地址PUSHDI;偏移量入栈保护OT HER:.(略)4.2 7 已 知 有 某 字 串 B U F1首址为0000H,BUF2首址为0010H,数据段与附加段重叠。欲从BUF1处开始将10个字数据顺序传送至BUF2处,试在下面程序段空白处填上恰当指令或操作数以实现上述功能。LEASI,BUF1;送 BUF1偏移量34ADD SI,12H;地址移动到字符串最后LEADI,BUF2;送BUF2偏移量ADD DL 12H;地址移动到字符串最后ST D;方向标志位清零MOV CX,10;送计数值REP MOVSW;进行串操作4.28在 DAT 和 DAT 1两个字节变量单元中有两个十进制数ASCII码,编程实现将这两个ASCH码转换为两个BCD码,并以压缩形式存储在REST 字节变量单元中。试填写该程序划线某些,并加入必要注释。MOV AL,DAT ;取第一种数SUB AL,30H;将 ASCII 码35转为BCD码MOV CL,4SHL AL,CL放在AL高四位中MOV BL,DAT 1数SUB BL,30HASCII码转为BCD码OR AL,BL码合并在AL寄存器中MOV REST,ALBCD码存入REST中HLT;送移位数;将BCD码;取第二个;将DAT 1中;将两个BCD;将压缩形式第五章 汇 编 语 言 程 序 设 计5.1答:标号在指令性指令名字,写在指令前面,标号后必要有冒号。变量在伪指令前是定义某一数据区所起名字,它背面不带冒号。标号和变量均有段、偏移量属性,标号类型是远和近型,变量类型是字节、字、双字等。36070100HADD100H00H00H01H00H00H00H3701HADD204H05H05H05H05H07H01H2068HADD3385.2答:指令性指令是I给CPU命令,它是由汇编 题5.3图程序翻译成机器语言指令,在程序运营时由CPU来执行,每条指令都相 应CPU 一种特定操作。伪指令不汇编成机器语言,仅仅在汇编过程中告诉汇编程序应如何汇编。5.3答:ADD1、ADD2、ADD3段基址为1000H;ADD1、偏移量为H、类型为双字;ADD2、偏移量为H、类型为字节;ADD3、偏移量为2068H、类型为字。5.4答:分派状况如右图02 1006H39HADD1T12数H代9A 1009HHADD256H42H41题 5.4图H5.5 答:(定义堆栈段 8 1 字节、据 段(1 7 字节)和码段)05H LOOPZ和 LOOPNZ指令来实现,也可以用指令DEC C X 和JNC标号两条来实现。其特点是需要多次重复进行某些操作。5.17答:LEA BX,DATMOV CX,10049LP1:MOV AL,BXMOV AH,20HAND AL,AHMOV AL,ODFHJNZ DAXXIAO:OR BX,AHJMP PPDAX:AND BX,ALPP:INC BXLOOP LP1DONE:HLT5.18 答:DAT A SEGMENTLED1 DB3FH,06H,5BH,4FH,66H,6DH,3DH,07H,7FH,6FHDAT A ENDSCODE SEGMENTASSUME CS:CODE,DS:DAT AST ART:LDS SI,LED150AA1:MOV CL,10AA2:MOV AL,SIINC SIOUT 40H,ALLOOP AA2JMPAA1:CODE ENDS5.19 答:MOV AX,HMOV D S,AXMOV AX,5000HMOV ES,AXMOV SI,1000HMOV DI,8000HMOV CX,300REP MOVSWHLT5.20 答:LAE SI,ADD1MOV CX,100XOR BX,BXST AR:MOV AX,SI51T EST AX,8000HJZ JSHINC BLJMP DONEJSH:INC BHDONE:ADD SI,2DEC CXJNZ ST ARMOV DD1,BLMOV DD2,BHHLT5.21 答:MOV DX,0000HMOV BX,0000HMOV CX,80LEA SI,DAT ABLEA DI,BT RXGOON:MOV AL,SICMP AL,90JC NEXT 3INC DH52JMP ST ORNEXT 3:CMP AL,80JC NEXT 4INC DLJMP ST ORNEXT 4:CMP AL,70JC NEXT 5INC BLJMP ST ORNEXT 5:CMP AL,60JC NEXT 6INC BHJMP ST ORNEXT 6:INC AHST OR:INC SILOOP GOONMOV DI,DHMOV DI+1,DLMOV DI+2,BHMOV DI+3,BL53MOV DI+4,AHHLT2)LEA SI,DAT ABLEA DI,LEVTMOV CX,79MOV AL,SIAA1:INC SIADD AL,SIADC AH,0LOOP AA1MOV BL,80DIV BLMOV DI,ALHLT5.24 答:MOV BL,0LEA SI,BUFMOV CX,OFFHLP:MOV AL,SICMP AL,30HJB T J54CMP AL,39HJNB AA1CMP AL,41HJB T JCMP AL,5AHJA T JINC DLJMP DONEAA1:INC BHJMP DONET J:INC BLDONE:INC SILOOP LPMOV SI+0100H,BLMOV SI+0101H,BH;(09)MOV SI+0102H,DL;(AZ)HLT55