您好,欢迎访问三七文档
1、80X86微型计算机的组织习题一、(24页):1-12,1-15,1-18,1-19,1-20二、单选1.十六进制数88H可以被其他形式的数所表示,下列哪种表示方法是错的?A.无符号十进制136C.BCD码88B.带符号十进制–120D.带符号数据–82.如果DH=10H,执行NEGDH指令,正确的结果是().A.DH=10HC=1C.DH=10HC=0B.DH=0F0HC=0D.DH=0F0HC=13.哪个是指令指针寄存器?A.IPB.SPC.BPD.PSW(程序状态字)4.如果AX=1000H,NEGAXNEGAX上面两条指令执行后,AX=().a.1001Hb.1002Hc.1000Hd.0F000H•2.2有两个16位的字1EE5H和2A3CH存储在IBMPC的000B0H和000B03H的内存单元中,请以图表的形式说明内存中的存储情况2.3如下图,展示的是IBMPC的内存信息,请说明30022H字节单元和30024H字节单元的内容,和30021H字单元和30022H字单元的内容。30020H12H30021H34H30022HABH30023HCDH30024HEFH•2.43017:000A的段地址的物理地址和偏移量是什么?3015:002A和3010:007A的段地址和偏移是什么?•2.5运行程序之前,(CS)=0A7F0H,(IP)=2B40H,程序的第一个字的物理地址是什么?2.6在内存中,每一段都顶多有10000H字节。下面是用DEBUG的命令“r”来在终端上展示寄存器的内容。请以图表的形式显示内存是如何划分成段的,还有OF,SF,ZF,CF的值。2.8哪类型的寄存器可以用来显示内存地址2.9CPU--分析,控制和运行指令的组件,包含算术逻辑单元和一组寄存器。内存–内存存储过程,数据等等,PC中,有RAM何ROMStack–存储空间,以后进先出的方式工作。IP–存储下一条要运行的指令SP—存储当前栈顶地址的寄存器状态标志位–变址位记录指令运行的结果,包含6个位,OF,SF,ZF,AF,PF,CF。控制标志位—控制指令的标志,PC中有三个位,是DF,IF,TF.段寄存器–寄存器存储每一个逻辑段得起始地址,PC中有4中,分别是CS,DS,SS和ES。物理地址–显示存储空间中每一个字节的唯一的地址。汇编语言―――用指令的助记符,符号地址,标号等符号书写程序的语言。机器语言―――能被计算机直接识别的语言。汇编程序―――把汇编语言程序翻译成机器语言程序的系统程序。连接程序―――把若干个模块连接起来成为可执行文件的系统程序。指令―――――告诉CPU要执行的操作(一般还要指出操作数的地址),在程序运行是执行。伪指令――――由汇编程序在汇编过程中执行的指令。5.假定DS=5788H,偏移地址94H,字节的PA(物理地址)是().a.57974Hb.57914Hc.5883Hd.58ECH6.在段中寻址的时候,在8086CPU的寄存器中,哪些寄存器可以提供偏移地址()A.AX,BX,CX,DXC.SP,IP,BP,DXB.BX,BP,SI,DID.CS,DS,ES,SS第2章寻址方式与汇编语言程序的组织•62页:•2-1a,c;2-2,2-3,2-6,2-7,2-13,2-17a,c;2-18b;2-19b;2-203.1给出(BX)=637DH,(SI)=2A9BH,偏移量D=7237H,尝试指出下列每一种寻址模式的有效地址。(1)立即寻址;(2)直接寻址(3)用BX的寄存器寻址;(4)用BX的寄存器间接寻址;(5)用BX的寄存器相对寻址;(6)基址变址寻(7)相对基址变址寻3.2根据下列要求,写出相关的汇编语言指令。(1)把BX的内容和DX的内容相加,结果放入DX中。(2)把AL的内容加上内存地址的内容,并把结果放到AL中。内存地址由BX和SI进行基址变址寻址所得。(3)把CX的内容加上内存地址的一个字,并把结果放到内存地址中。内存地址由BX和偏移量0B2H进行寄存器相对寻址所得。(4)把内存地址的内容与数2A59H相加,并把结果放入内存地址。内存地址由偏移量0524H进行直接寻址所得。(5)把数值0B5H与AL寄存器的内容相加,结果放入AL寄存器。3.3写出指令,把首址是BLOCK的字数组中的第六个字移入DX寄存器。使用如下的寻址方式。(1)寄存器间接寻址(2)寄存器相对寻址(3)基址变址寻址3.4给出(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,尝试解释:执行指令后,AX寄存器的内容。(1)MOVAX,1200H(3)MOVAX,[1200H](5)MOVAX,1100[BX](7)MOVAX,1100[BX][SI]3.8给出(DS)=2000H,(ES)=2100H,(SS)=00A0H,(BX)=0100H,(BP)=0010H,数据段中VAL的偏移地址是0050H,指出源操作数段得寻址方式和物理地址。(2)MOVAX,BX(4)MOVAX,VAL(6)MOVAX,ES:[BX](8)MOVAX,[SI](10)MOVAX,VAL[BX](12)MOVAX,VAL[BX][SI]问题:单选1.当执行POP[BX]和寻找目标操作数时,段地址跟偏移地址是在()中。a.无段地址也无偏移地址b.DS和BX中c.ES和BX中d.SS和SP中2.下列指令中,哪个是错的?a.MOVSS:[BX+DI],1000Hb.MOVDX,1000Hc.MOVWORDPTR[BX],1000Hd.MOVDS,2000H简答:1.指出下列的错误:1)MOVAH,BX2)MOV[BX],[SI]3)MOVAX,[SI][DI]4)MOVMYDAT[BX][SI],ES:AX5)MOVBYTEPTR[BX],10006)MOVBX,OFFSETMYDAT[SI]7)MOVCS,AX给出DS=6400h,BX=0743h,SS=6500H,BP=CA40h,SI=2100h和DI=04A4h,而且BETA是一个偏移量为0202h的数据项(名称/变量),对于下列每一条指令指出其寻址方式且计算出源操作数和目标操作数的20-位的物理地址:•(i)MOVAL,[BP][SI]•(ii)MOV[BX+DI+4],AX•(iii)MOVBETA,BL•(iv)MOVAH,[BP][DI+BETA]•(v)LODSB3.数据传送指令3.10TABLE是一个在数据段中0032上的符号,它的内容是1234H,下面指令由什么不同?执行指令后AX寄存器的内容是什么?3.11执行下列指令后AX寄存器的内容是什么?3.13给出SS寄存器的内容是0FFA0H,和SP寄存器的内容是00B0H。首先执行两个PUSH指令把8057H和0F79H压入栈中,然后执行POP指令.请以图表的形式给出栈的变化和SP的值(用下划线划出内存单元的物理地址).7.8下列指令中,符号ABCD是一个变量。说出两条指令的不同。分析程序:ADW1234HBDW5678H……PUSHAPUSHBPOPAPOPBReply:①执行之后(A)=__,(B)=__②执行程序之前SP=200H,执行之后SP=___4.DATASEGMENTADB12H,’12’BDW34H,45HCDWBDATAENDS…………在下列的指令完成之后,排列主存储器中的数据段。MOVAX,A+1;AX=LEABX,B;BX=MOVCX,C;CX=Lowaddress4.算术与逻辑运算指令1、程序分析:MOVAX,6540HMOVDX,3210HMOVCL,04SHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CLORDL,BL执行指令之后,(AX)=_____,(BL)=_____,(DX)=_____2。程序分析:MOVAL,200SARAL,1MOVBL,ALMOVCL,2SARAL,CLADDAL,BL执行指令之后(BL)=____,(AL)=_____3、当在串指令之前使用REPE立即前缀时,当(),串指令将会停止。A.CX=0ANDZF=0B.CX=0ANDZF=1C.CX=0ORZF=0D.CX=0ORZF=11.当在串指令之前使用REPE立即前缀时,当(),串指令将会停止。A.CX=0andZF=0B.CX=0andZF=1C.CX=0orZF=0D.CX=0orZF=12.下列哪条指令有合理和充分的意义?A.REPLODSBB.REPSCASBC.REPCMPSBD.REPMOVSB英特尔8086CPU中的每一个寄存器都是为在执行指令时的一些特定的功能而设计的.描述使用或者修改下列寄存器的两条特别的指令。•(i)SP,•(ii)SI,•(iii)DX.3.47指令填空。尝试指出在3个不同情况下,程序执行之后AX,BX,CX,DX寄存器的内容?4.1写出ADD指令,完成如下操作。–把BX加到AX–把12H加到AL–把EDI加到EDP–把22H加到CX–把SI的地址数据加到AL–把CX加到FROG地址的数据上•4.2指出指令ADDECX,AX的错误?•4.3可以用ADD指令把CX加到DS吗?•4.4给出AX=1001H,DX=20FFH,执行ADDAX,DX后,列出标志寄存器的总和和每一位的内容。4.6设计一个简短的程序,把AX,SX,CX,DX和SP累加在一起,把结果存进DI中。4.9写出把sp的内容加1的指令。4.10写出SUB指令,完成如下操作。(a)从AX中减去BX(b)从DH中减去0EEH4.11解释SBB[DI-4],DX的结果4.12解释SUB和CMP指令的不同4.13当8-位操作数加上另外一个数,结果存在哪里?4.14MULEDI的结果存在哪里?4.15当8-bit操作数被除时,结果存在哪里?4.16写一个简短的程序,把BL中的数据除以CL中的数据,然后把结果加上2,最后的结果存在DX中,是16-位数。5.程序控制指令5.BLK1DB46,84,34,-5,20,122,73MOVCX,7LEAS1,BLK1NEXT:MOVAL,[SI]INCSITESTAL,81HLOOPZNEXTMOVBL,[SI]执行指令之后:(AL)=________(BL)=_________2.假定VAR1和VAR2是字变量,LAB是标签,指出下列的错误:1)ADDVAR1,VAR22)SUBAL,VAR13)JMPLAB[SI]4)JNZVAR15)JMPNEARLAB5.2将下面程序补充完整.解释在3个实例中,程序执行后,AX,BX,CX,DX寄存器的内容?(1)LOOPL20(2)LOOPEL20(3)LOOPNEL20TITLEEXLOOP.COMCODESGSEGMENTASSUMECS:CODESG,DS:CODESG,SS:CODESGOGR100HBEGIN:MOVAX,01MOVBX,02MOVDX,03MOVCX,04L20:INCAXADDBX,AXSHRDX,1()RETCODESGENDSENDBEGIN6、ANDAL,ALJZBRCH1RCRAL,1JZBRCH2RCLAL,1INCALJZBRCH3……执行指令之后,回答:(1)当(AL)=时,程序跳到BRCH1(2)当(AL)=时,程序跳到BRCH2(3)当(AL)=时,程序跳到BRCH33.43编写程序完成流程图3.32的功能6.DOS和BIOS中断及应用7.汇编语言程序设计单选:1.汇编程序的语句中,可以省略()A.名称B.操作符C.操作数d.注释2.正确结束伪操作的句子是():A.汇编程序把伪操作翻译成机器代码。B.伪操作在程序执行期间完成它的功能。C.伪操作的功能是告诉汇编程序在汇编过程实现特殊的处理4.执行下列指令后,变量DAB的内容是DAWDW2A05HDABDB0FAH…MOVAL,BYT
本文标题:汇编答案(华工版)
链接地址:https://www.777doc.com/doc-4410730 .html