《微型计算机原理与接口技术版简答题.docx》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术版简答题.docx(29页珍藏版)》请在课桌文档上搜索。
1、一、问答题1、以下字符表示成相应的ASCII码是多少?(1)换行OAH(2)字母Q51H(3)空格20H2、以下各机器数所表示数的范围是多少?(1) 8位二进制无符号定点整数;0255(2) 8位二进制无符号定点小数;0996094(3) 16位二进制无符号定点整数;065535(4)用补码表示的16位二进制有符号整数;-32768327673、(111)X=273,基数X=?164、有一个二进制小数X=0.XiX2XsX4X6Xe(1)假设使X21/2,那么X1X6应满足什么条件?Xl=I(2)假设使Xl8,那么XiX6应满足什么条件?XlVX2VX3=l5、有两个二进制数X=OuOIOio
2、,=ooonoo,试比拟它们的大小。(I)X和Y两个数均为无符号数;XY(2)X和Y两个数均为有符号的补码数。XDOS-BIOSdBMBIO.COM).DOS-Shell模块对用户输入的DOS命令行或应用程序行作出响应。即负责DOS命令的解释和任务的分配,具体工作那么要靠DOS-Kernel模块所提供的系统功能完成。DOS-KerneI模块尽管提供了许多的系统功能,但由于执行每一个系统功能过程中,完全依赖各种设备实现指定的功能,因此,它还要进一步调用DoS-BloS模块中的设备驱动程序才能工作。DOS-BIOS模块对DOS-Kernel传送的请求”进行解释,最终转换为对固化在ROM-BIOS中
3、的设备控制程序的请求并由它们去控制硬件,完成指定的操作。11 .存储单元的选择由什么信号控制?读、写靠什么信号区分?答:存储单元的选择由地址信号控制,而对存储单元进行读操作还是写操作那么要靠读、写信号区分。12 .以一个可执行文件的运行为例,简述程序执行过程。答:当在DoS提示符下键入一个可执行文件名称(或在其它操作系统环境下执行有关操作)后,操作系统自动将该文件从外存装入内存并使指令指针指向其第一条指令,从而启动文件执行过程。首先将第一条指令从内存取入CPU中译码执行,同时指令指针自动加1或按指令的要求作出相应改变,指向下一条要执行的指令,接着将下一条指令从内存取入CPU译码执行,这样不断重
4、复取指令和执行指令的过程,逐条执行指令,直至程序结束。1 .把以下各数化成二进制数和八进制数(二进制取3位小数,八进制取一位小数):7+3/4,3/64,73.5,725.9375,25.34答:7+3/4=111.HOB;7+3/4=7.60;+364=0.OOOB;+364=0.00;73.5=1001001.1OOB;73.5=111.40;725.9375=1011010101.IllB;725.9375=1325.70;25,34=11001.OllB;25.34=31.302 .把以下各数化成十进制数:101.100llB,22.20,AD.4H答:101.10011B=5.593
5、75;22.20=18.25;AD.4H=173.253 .完成以下二进制数运算:101.111+11.Oil,1001.10-110.01,101.11*11.01,101110111/1101答:101.111+11.011=1001.01;1001.10-110.01=11.01;101.11*11.01=10010.1011;101110111/1101=11100.114 .完成以下各十六进制数的运算:A39E+28DC,D5AB-7CE5,2BF*4C,C16E/3A答:A39E+28DC=CC7A;D5AB-7CE5=58C6;2BF*4C=D0B4;C16E3A=355.C25
6、 .先将15B*8E2A中的十六进制数化成十进制数,再进行计算,最后再将结果化为十六进制数。答:15BH*8EH2AH=347*14242=4927442=1173.19=495.30AH6,试分别判断以下各组数据中哪个数据最大?哪个数据最小?(1) A=0.1001B,B=0.1001D,C=0.100lH(2) A=10111101B,B=100lD,C=IllH答:(1)A最大,C最小;(2)B最大,A最小;1.写出以下各数的二进制原码和补码(最后两个用双字节):0,96,-128,-38H,127,105,879H,-32768答:2 .分别列出下述10进制数的16进制数、非压缩的BC
7、D数、压缩的BCD数、ASCIl数字串(用16进制形式写出):10,64,78,81,92,100,125,255答:上述各数的16进制数依次为:AH,40H,4EH,51H,5CH,64H,7DH,FFH;上述各数的非压缩的BCD数依次为:O100H,0604H,0708H,0801H,0902H,010000H,010205H,020505H;上述各数的压缩的BCD数依次为:10H,64H,78H,81H,92H,0100H,0125H,0255H;上述各数的ASCII数字串依次为:3130H,3634H,3738H,3831H,3932H,313030H,313235H,323535H;
8、3 .用10进制数写出以下补码表示的机器数的真值:71H,1BH,80H,F8H,397DH,CF42H,9350H答:上述补码表示的各机器数的真值用10进制数分别表示为:+113,+27,-128,-8,+14717,-20670,-278284 .假设用一个字节来表示带符号数,判断以下各运算在机内进行时是否会产生溢出,写出判断过程。A.5BH+32H;B.-08H-15H;C.-51H+(-3DH);D.2DH+3CH答:A.产生溢出,5BH=010110nB其补码表示的机器数为:010110H32H=00110010B其补码表示的机器数为:00110010相加的结果为:10001101数
9、值最高位向符号位进位,但符号位向前无进位,故产生溢出。B.不产生溢出,-08H=-OOOOlooOB其补码表示的机器数为:InI100O-15H=T)OoIOloIB其补码表示的机器数为:11101011相加的结果为:111100011数值最高位向符号位进位,符号位同时也向前进位,故不产生溢出.C.产生溢出,-5IH=-OlolOoOIB其补码表示的机器数为:10101111-3DH=-OOllIIOIB其补码表示的机器数为:11000011相加的结果为:101110010数值最高位向符号位无进位,但符号位向前进位,故产生溢出.D.不产生溢出,2DH=00101101B其补码表示的机器数为20
10、1011013CH=001IllOOB其补码表示的机器数为:00111100相加的结果为:01101001数值最高位向符号位无进位,符号位向前也无进位,故不产生溢出。5 .从键盘敲入一个大写字母,如何转换为与其相对应的小写字母?从键盘敲入16进制数字符0F,如何转换为其相对应的二进制数(00000000-00001111)?答:从键盘敲入一大写字母后,将其ASCII码加上20H,就转换成了与其相对应的小写字母。从键盘敲入16进制数字符09后,将其ASCII码值减去30H,就转换成了与其相对应的二进制数.从键盘敲入16进制数字符AF后,将其ASCII码值减去37H,就转换成了与其相对应的二进制数
11、.6 .详细表达总线缓冲器的作用。答:总线缓冲器的作用主要是控制各路数据在总线上的交叉传送防止相互冲突,当几路数据都要向总线上传送时,就通过各路的缓冲器来解决,当一路传送时,缓冲器使其它各路数据与总线断开。7 .锁存器和存放器有什么不同?答:锁存器与存放器都是用来暂存数据的器件,在本质上没有区别,不过存放器的输出端平时不随输入端的变化而变化,只有在时钟有效时才将输入端的数据送输出端(打入存放器),而锁存器的输出端平时总随输入端变化而变化,只有当锁存器信号到达时,才将输出端的状态锁存起来,使其不再随输入端的变化而变化。1. 8086从功能上分成了EU和BIU两局部。这样设计的优点是什么?答:传统
12、计算机在执行程序时,CPU总是相继地完成取指令和执行指令的动作,即,指令的提取和执行是串行进行的。而8086CPU在功能上分成了EU和BIU两局部,BIU负责取指令,EU负责指令的执行,它们之间既互相独立又互相配合,使得8086可以在执行指令的同时进行取指令的操作,即实现了取指令和执行指令的并行工作,大大提高了CPU和总线的利用率,从而提高了指令的处理速度。2.8086CPU中地址加法器的重要性表达在哪里?答:地址加法器是8086CPU的总线接口单元中的一个器件,在8086存储器分段组织方式中它是实现存储器寻址的一个关键器件,地址加法器将两个16位存放器中的逻辑地址移位相加,得到一个20位的实
13、际地址,把存储器寻址空间从64K扩大到1M,极大地扩大了微型计算机的程序存储空间,从而大大提高了程序运行效率。3.8086CPlJ中有哪些存放器?分组说明用途。哪些存放器用来指示存储器单元的偏移地址?答:8086CPU中有8个通用存放器AX、BX、CX、DX、SP、BP、SKDI;两个控制存放器IP、FL5四个段存放器CS、DS、SSESo8个通用存放器都可以用来暂存参加运算的数据或中间结果,但又有各自的专门用途。例如,AX专用做累加器,某些指令指定用它存放操作数和运算结果;CX为计数存放器,在某些指令中做计数器使用;DX为数据存放器;BX为基址存放器,BP为基址指针,Sl为源变址存放器,Dl
14、为目的变址存放器,这4个存放器在数据寻址中用来存放段内偏移地址(有效地址)或段内偏移地址的一局部;SP为堆栈指示器,用来存放栈顶有效地址。两个控制存放器用来存放有关的状态信息和控制信息。例如,标志存放器FL用来存放状态标志和控制标志;而指令指针用来存放下一条要取指令的有效地址。四个段存放器用来存放段地址。例如,CS存放器用来存放代码段的段地址;DS存放器用来存放数据段的段地址;SS存放器用来存放堆栈段的段地址;ES存放器用来存放扩展段的段地址。4 .8086系统中存储器的逻辑地址由哪两局部组成?物理地址由何器件生成?如何生成?每个段的逻辑地址与存放器之间有何对应关系?答:8086系统中存储器的
15、逻辑地址由段地址(段首址)和段内偏移地址(有效地址)两局部组成;存储单元的物理地址由地址加法器生成,寻址时,CPU首先将段地址和段内偏移地址送入地址加法器,地址加法器将段地址左移4位并与段内偏移地址相加,得到一个20位的物理地址。数据段的段地址在DS存放器中,段内偏移地址可能在BX、BP、Sl或Dl存放器中。代码段的段地址在CS存放器中,段内偏移地址在IP存放器中。堆栈段的段地址在SS存放器中,段内偏移地址在SP存放器中。扩展段的段地址在ES存放器中,段内偏移地址可能在BX、BP、Sl或Dl存放器中。5 .设CPU中各有关存放器的当前状况为:SS=Oa8bH、DS=17ceHCS=dc54HB
16、X=394bHIP=2f39H、SP=1200H,BX给出的是某操作数的有效地址,请分别写出该操作数、下一条要取的指令及当前栈顶的逻辑地址和物理地址。答:该操作数的逻辑地址为DS:BX=17CE;394BH,物理地址二17CEH*1OH+394BH=1B62BH;下一条要取的指令的逻辑地址为CS:IP=DC54:2F39H,物理地址=DC54H*10H+2F39H=DF479H;当前栈顶的逻辑地址=SS:SP=0A8B:1200H,物理地址=0A8BH*10H+1200H=0BAB0H06 .假设DS=157DH时,某操作数的物理地址是215FAH,当DS=18DEH时,该操作数的物理地址是多
17、少?答:该操作数的段内偏移地址=该操作数的物理地址-DS=215FAH-157D0H=BE2AH,故当DS=18DEH时,该操作数的物理地址=DS*10H+BE2AH=18DE0H+BE2AH=24C0AH7 .设AX=2875HBX=34DFHSS=1307HSP=8H,依此执行PUSHAX、PUSHBX、POPAX、POPCX后栈顶指针变为多少?AX=?BX=?CX=?答:当前栈顶指针=SS*10H+SP=13070H+8H=13078H,依此执行PUSHAX、PUSHBX、POPAX、POPCX后栈顶指针仍为13078Ho但AX=34DFH,BX=34DFH,CX=2875H1.假定(B
18、X)=637DH,(SI)=2A9BH,位移量D=3237H,试确定在以下各种寻址方式下的有效地址是什么?(1)立即寻址(2)直接寻址(3)使用BX的存放器寻址(4)使用BX的间接寻址(5)使用BX的存放器相对寻址(6)基址变址寻址(7)相对基址变址寻址答:(1)立即数寻址的有效地址是当前IP的内容;(2)直接寻址,假设使用位移量D=3237H进行,那么有效地址为3237H;(3)使用BX的存放器寻址时,操作数在BX存放器中,因此无有效地址;(4)使用BX的间接寻址时,有效地址在BX存放器中,即有效地址=637DH;(5)使用BX的存放器相对寻址的有效地址=(BX)+D=637DH+3237H
19、=95B4H;(6)基址变址寻址的有效地址=(BX)+(SI)=637DH+2A9BH=8E18H;(7)相对基址变址寻址的有效地址=(BX)+(SI)+D=C050H;2 .写出把首地址为BLOCK的字数组的第6个字送到DX存放器的指令。要求使用以下几种寻址方式:(1)存放器间接寻址(2)存放器相对寻址(3)基址变址寻址答:(1)使用存放器间接寻址,把首地址为BLOCK的字数组的第6个字送到DX存放器的指令为:MOVBX,BLOCKADDBX,12MOVDX,BX(2)使用存放器相对寻址,把首地址为BLoCK的字数组的第6个字送到DX存放器的指令为:MOVBX,BLOCKMOVDX,BX+1
20、2(3)使用基址变址寻址,把首地址为BLOCK的字数组的第6个字送到DX存放器的指令为:MOVBX,BLOCKMOVSI,12MOVDX,BX+SI3 .现有(DS)=2000H,(BX)=OlOOH,(SI)=0002H,(20230H)=12H,(20231H)=34H,(20232H)=56H,(20233H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明以下各条指令执行完后AX存放器的内容。(1) MOVAX,1200H(2) MOVAX,BX(3) MOVAX,1200H(4) MOVAX,BX(5) MOVA
21、X,BX+1100(6) MOVAX,BX+SI(7) MOVAX,BX+SI+1100答:(1)指令MOVAX,120OH执行完后AX存放器的内容为1200H;(2)指令MoVAX,BX执行完后AX存放器的内容为OloOH;(3)指令MoVAX,1200H是将从物理地址=(DS)*10H+1200H=21200H开始的两个单元内容送AX,执行完后AX存放器的内容为4C2AH;(4)指令MoVAX,BX是将从物理地址=(DS)*10H+(BX)=2023OH开始的两个单元内容送AX,故执行完后AX存放器的内容为3412H;(5)指令MOVAX,BX+1100是将从物理地址=(DS)*10H(B
22、X)+1100H=21200H开始的两个单元内容送AX,故执行完后AX存放器的内容为4C2AH;(6)指令MOVAX,BX+SI是将从物理地址=(DS)*10H+(BX)+(SI)=20232H开始的两个单元内容送AX,故执行完后AX存放器的内容为7856H;(7)指令MoVAX,BX+SI+1100是将从物理地址=(DS)*10H+(BX)+(SI)+1100H=21202H开始的两个单元内容送AX,故执行完后AX存放器的内容为65B7H;4.假设(DS)=2900H,(ES)=2100H,(SS)=1500H,(SI)=OOAOH,(BX)=OlOOH,(BP)=OOlOH,数据段中变量名
23、VAL的偏移地址值为0050H,试指出以下源操作数字段的寻址方式是什么?其物理地址值是多少?(1)MOVAX,OABH(2)MOVAX,BX(3)MOVAX,100HMOVAX,VAL(5)MOVAX,BX(6)MOVAX,ES:BX(7)MOVAX,BP(8)MOVAX,SI(9)MOVAX,BX+10(10)MOVAX,VALBX(11)MOVAX,BXSI(12)MOVAX,BPSI答:(1)在指令MOVAX,OABH中,源操作数字段的寻址方式是立即数寻址,其物理地址值=(CS)*10H+(IP);(2)在指令MOVAX,BX中,源操作数字段的寻址方式是存放器寻址,操作数在BX中,无物理
24、地址;(3)在指令MOVAX,100H中,源操作数字段的寻址方式是直接寻址,其物理地址值=(DS)*10H+100=29000H+100H=29100;(4)在指令MOVAX,VAL中,源操作数字段的寻址方式是直接寻址,其物理地址值二(DS)*10H+50H=29000H+50H=29050H;(5)在指令MOVAX,BX中,源操作数字段的寻址方式是存放器间接寻址,其物理地址值=(DS)*10H+(BX)=29000H+100H=29100H;(6)在指令MOVAX,ES:BX中,源操作数字段的寻址方式是存放器间接寻址,其物理地址值=(ES)*10H+(BX)=21000H+100H=2110
25、0H;(7)在指令MOVAX,BP中,源操作数字段的寻址方式是存放器间接寻址,其物理地址值=(SS)*10H+(BP)=15000H+10H=15010H;(8)在指令MOVAX,SI中,源操作数字段的寻址方式是存放器间接寻址,其物理地址值二(DS)*10H+(SI)=29000H0A0H=290A0H;(9)在指令MOVAX,BX+10中,源操作数字段的寻址方式是存放器相对寻址,其物理地址值=(DS)*10H+(BX)+OAH=29000H+100H+0AH=2910AH;(10)在指令MOVAX,VALBX中,源操作数字段的寻址方式是存放器相对寻址,其物理地址值=(DS)*10H+(BX)
26、+50H=29000H+100H+50H=29150H;(11)在指令MOVAX,BXSI中,源操作数字段的寻址方式是基址变址寻址,其物理地址值=(DS)*10H+(BX)+(SI)=29000H+100H+0A0H=291A0H;(12)在指令MOVAX,BPSI中,源操作数字段的寻址方式是基址变址寻址,其物理地址值=(SS)*10H+(BP)+(SI)=15000H+10H+0A0H=150B0H5 .分别指出以下指令中的源操作数和目的操作数的寻址方式。(1) MOVSI,200(2) MOVCX,DATASI(3) ADDAX,BX+DI(4) ANDAX,BX(5) MOVSI,AX(
27、6) PUSHF答:(1)目的操作数字段的寻址方式是存放器寻址,源操作数字段的寻址方式是立即数寻址;(2)目的操作数的寻址方式是存放器寻址,源操作数的寻址方式是存放器相对寻址;(3)目的操作数的寻址方式是存放器寻址,源操作数的寻址方式是基址变址寻址;(4)目的操作数的寻址方式是存放器寻址,源操作数的寻址方式也是存放器寻址;(5)目的操作数的寻址方式是存放器间接寻址,源操作数的寻址方式是存放器寻址;(6)目的操作数的寻址方式是存放器间接寻址,源操作数的寻址方式是存放器寻址;6 .试述指令MoVAX,2023H和MOVAX,DS:2023H的区别。答:指令MoVAX,2023H是将立即数2023H
28、送AX存放器,而指令MOVAX,DS:2023H是将DS段有效地址为2023H的两个单元的内容送AXo7 .写出以下指令中内存操作数的所在地址。(1) MOVAL,BX+5(2) MOVBP+5,AX(3) INCBYTEPTRSI+3(4) MOVDL,ES:BX+DI(5) MOVBX,BX+SI+2答:(1)指令MoVAL,BX+5中内存操作数的所在地址=(DS)*10H+(BX)+5;(2)指令MoVBP+5,AX中内存操作数的所在地址=(SS)*10H(BP)+5和(SS)*10H+(BP)+6;(3)指令INCBYTEPTRSI+3中内存操作数的所在地址=(DS)+(SI)+3;指
29、令MOVDL,ES:BX+DI中内存操作数的所在地址=(ES)*10H+(BX)+(DI);(5)指令MoVBX,BX+SI+2中内存操作数的所在地址=(DS)*10H+(BX)+(SI)+2和(DS)*10H+(BX)+(SI)+3;8 .判断以下指令书写是否正确,如有错误,指出错在何处并用正确的程序段(一条或多条指令)实现原错误指令(8)、(13)除外)期望实现的操作。(1) MOV AL, BX(2) MOV AL, SL INC BX MOV 5, AL(5) MOV BX, SI(6) MOV BL, F5H(7) MOV DX, 2000H(8) POP CS(9) MOVES,3
30、278H(10) PUSHAL(11) POPBX(12) MOV1A8H,23DH(13) PUSHIP(14) MOVAX,23DH(15) SHLAX,5(16) MULAX,BX答:(1)MOVAL,BX错,源操作数为字类型,目的操作数为字节类型,二者不一致。应改为:MOVAX,BX或MOVAL,BL;(2) MOVAL,SL错,Sl存放器不能分为高8位和低8位使用,即没有SL存放器。应改为:MOVAX,SI(3) INCBX错,未指定操作数的类型。应改为:INCBYTEPTRBX(4)M0V5,AL错,目的操作数使用了立即数,在指令中一般不允许。应改为:MOVDS:5,AL(5) M
31、OVBX,SI错,源操作数和目的操作数均为内存单元,不允许。应改为:MOVAX,SIMOVBX,AX(6) MOVBL,F5H错,源操作数错,以AF开头的数字前应加0。应改为:MOVBL,0F5H(7) MOVDX,2000H正确。(8) POPCS错,不能将栈顶数据弹至CS中。(9) MOVES,3278H错,立即数不能直接送ES存放器。应改为:MOVAX,3278HMOVES,AX(10) PUSHAL错,栈操作不能按字节进行。应改为:PUSHAX(11) POPBX正确。(12) MOV1A8H,23DH错,源操作数是立即数,目的操作数必须使用存放器指出。应改为:MOVBX,1A8HMO
32、VBX,23DH(13) PUSHIP错,不能用IP存放器做源操作数。(14) MOVAX,23DH错,不能用AX存放器间接寻址。应改为:MOVBX,AXMOVBX,23DH(15) SHLAX,5错,不能用大于己于1的立即数指出移位位数。应改为:MOVCL,5SHLAX,CL(16) MULAX,BX错,目的操作数AX是隐含的,不能在指令中写出。应改为:MULBX9.设堆栈指针SP的初值为2000H,AX=3000H,BX=5000H,试问:(1)执行指令PUSHAX后(SP)=?(2)再执行PUSHBX及PoPAX后(SP)=?(AX)=?(BX)=?答:(1)执行指令PUSHAX后(SP
33、)=2000H-2=lFFEH;(2)再执行PUSHBX及POPAX后(SP)=IFFEH,(AX)=5000H,(BX)=5000H10.要想完成把2000H送1000H中,用指令:MOV1000H,2000H是否正确?如果不正确,应用什么方法?答:把2000H送1000H中,用指令MOV1000H,2000H不正确,应改为:MOVAXJ2000HMOV1000H,AXIL假设想从200中减去AL中的内容,用SUB200,AL是否正确?如果不正确,应用什么方法?答:想从200中减去AL中的内容,用SUB200,AL不正确,应改为:MOVBL,200SUBBL,AL12分别写出实现如下功能的程
34、序段(1)双字减法(被减数7B1D2A79H,减数53E2345FH)。(2)使用移位指令实现一个字乘18的运算。(3)使用移位指令实现一个字除以10的运算。(4)将AX中间8位,BX低四位,DX高四位拼成一个新字。(5)将数据段中以BX为偏移地址的连续四个单元的内容颠倒过来(6)将BX中的四位压缩BCD数用非压缩BCD数形式顺序放在AL、BL、CL、DL中。答:(1)双字减法的程序段是:MOVAX,2A79H;被减数的低位字送AXSUBAX,345FH;低位字相减,结果送AXMOVBX,7B1DH;被减数的高位字送BXSBBBX,53E2H;高位字相减处并减去低位字相减产生的借位,结果送BX
35、(2)使用移位指令实现一个字乘18的程序段是:MOVAX,05F7H;被乘数送AXSHLAX,1;被乘数乘以2,结果在AX中MOVBX,AX;被乘数乘以2的结果暂存到BXMOVCL,3;设置移位位数3SHLAX,CL;被乘数再乘以8(共乘以16),结果在AX中ADDAX,BX;被乘数再乘以18,结果在AX中(3)使用移位指令实现一个字除以10的运算,必须将X/10拆分成多项的和,而每一项都应是非的某次塞的倒数。利用等比级数的前N项和公式,可求出A0=X8,公比Q=T4,故X10=X8-X32X128-X512+.,所求的程序段是:MOVAX,FEOOH;被除数送AXMOVCL,3;设置移位位数
36、3SHRAX,CL;被乘数除以8,结果在AX中MOVBX,AX;被乘数除以8的结果暂存到BXMOVCL,2;设置移位位数2SHRAX,CL;被乘数除以4(累计除32),结果在AX中SUBBX,AX;被除数/8-被除数/32,结果在BX中MOVCL,2;设置移位位数2SHRAX,CL;被乘数除以4(累计除128),结果在AX中ADDBX,AX;被除数/8-被除数/32+被除数/128,结果在BX中MOVCL,2;设置移位位数2SHRAX,CL;被乘数除以4(累计除512),结果在AX中SUBBX,AX;被除数/8-被除数/32+被除数/128-被除数/512,结果在BX中(4)将AX中间8位,B
37、X低四位,DX高四位拼成一个新字的程序段是:ANDDX,OFOOOH;将DX的低12位清零,高4位不变ANDAX,OFFOH;将AX的低4位清零,高4位清零,中间8位不变ANDBX,OFH;将BX的高12位清零,低4位不变ADDAX,BXADDAX,DX;按要求组成一个新字,结果放在AX中。(5)将数据段中以BX为偏移地址的连续四个单元的内容颠倒过来的程序段是:MOV AL, BX;数据段中BX为偏移地址的字单元内容送AXXCHG AL, BX+3MOV BX,AL;数据段中BX+3为偏移地址的字单元内容与AX的内容交换;数据段中BX+3为偏移地址的字单元内容送BX为偏移地址的字单元MOVAL
38、,BX+15数据段中BX+1为偏移地址的字单元内容送AXXCHGAL,BX+2;数据段中BX+2为偏移地址的字单元内容与AX的内容交换MOVBX+1,AL;数据段中BX+2为偏移地址的字单元内容送BX+1为偏移地址的字单元(6)将BX中的四位压缩BCD数用非压缩BCD数形式顺序放在AL、BL、CL、DL中的程序段是:MOVDL,BL;四位压缩BCD数的低位字节送DLANDDL,OFH;DL的高4位清零,得四位非压缩BCD数的最低位,放入DL中MOVCL,4;设置移位位数4SHRBX,CL;BX中的数据逻辑右移4位,使四位压缩BCD数的次低位位于BL的低4位MOVCH,BL;将BL的内容暂存到C
39、H中保存ANDCH,OFH;CH的高4位清零,得四位非压缩BCD数的次低位,放CH中MOVCL,4;设置移位位数4SHRBX,CL;BX中的数据逻辑右移4位,使四位压缩BCD数的次高位位于BL的低4位MOVAL,BL;将BL的内容暂存到AL中保存ANDBL,OFH;BL的高4位清零,得四位非压缩BCD数的次高位,放BL中MOVCL,4;设置移位位数4SHRAL,CL高;使四位压缩BCD数的最高位位于AL的低4位,得四位非压缩BCD数的次;位,放入BL中MOVCL,CH;将四位非压缩BCD数的次低位移入CL中1.假设OPL0P2是已经用DB定义的变量,W_0P3和W_0P4是已经用DW定义的变量,判断以下指令书写是否正确?如有错误,指出错在何处?并写出正确的指令(或程序段)实现原