大学计算机硬件基础 第二章作业2007答案.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流大学计算机硬件基础 第二章作业2007答案.精品文档.第二章 指令系统 习题1、 说明下列指令源操作数的寻址方式(1)MOV AX, 26立即 (2)MOV AX, 26H 直接 (3)MOV AX, BX寄存器 (4)MOV AX, BX 寄存器间接(5)MOV AX, ES:BX寄存器间接 (6)MOV AX, SI 寄存器间接(7)MOV AX, BX+SI基址加变址 (8)MOV AX, VARBXSI 相对的基址加变址2、 假定(DS)=3000H,(ES)=3100H,(SS)=2800H,(SI)=00BAH,(BP)=1200H,(BX)=0010H,数据段中变量VAR的偏移地址是0600H,说明下列各种源操作数的物理地址。(1)MOV AX, BX;无 (2)MOV AX, 0AHBX ;3001AH(3)MOV AX, BX;30010H (4)MOV AX, 260H ;30260H(5)MOV AX, BP+10H;29210H (6)MOV AX, ES:BX ;31010H3、 设(DS)=3000H,(BX)=1100H,(CS)=0062H,(SI)=0002H,(31100H)=52H,(31101H)=8FH,(31162H)=6BH,(31163H)=99H,(31103H)=F6H,(32200H)=AAH,(32201H)=B6H,(32800H)=55H,(32801H)=77H,给出下列各指令执行后AX寄存器的内容。(1)MOV AX, BX;1100H (2)MOV AX, BX ;8F52H(3)MOV AX, 4200H ;4200H (4)MOV AX, 2800H ;7755H(5)MOV AX, 1100HBX;B6AAH (6)MOV AX, 1160H+SI ;996BH4、 设(AX)1101 1001B,(CL)03,(CF)1,写出下列指令分别执行后AX中的内容(16为二进制数):(1)SAR AX, CL;001BH (2)SHR AX, 1 ;006CH(3)SHR AH, CL;00D9H (4)RCR AX, 1 ;806CH5、 分别执行下列各指令组,写出AX的内容:4142H6C5CH(1)MOV AX, 93A4H (2)XY DW 'AB' NEG AX MOV AX, XYB945H7933H(3)MOV AX, 2B7EH (4)XA DW 0BD57H MOV CX, 4DB5H MOV AX, 0FBCDH ADD AX, CX AND AX, XAD010H(5)STC (6)MOV AX, 238AH8D02H MOV BX, 0B69FH MOV BX, 3468H MOV AX, 43A2H IMUL BL SBB AX, BX6、 分析下列指令的对错,错误的请说明原因。(1)MOV DS, 2010H (2)PUSH AL(3)MOV DX, SP (4)IN AL,0A00H(5)XCHG CL, CH (6)SHR AX, 3(7)AAA CX (8)ADD BP+DI, 1000H7、 设(SS)2000H,(SP)1000H,执行下述指令序列,画图说明SP和堆栈内容变化过程的示意图,并在分号后面标出(AX),(SP),(SP)的内容。MOVAX, 80AAHPUSHAX;80AAH,0FFEH,80AAHMOVAX, 0A35HPUSHAX;0A35H,0FFCH,0A35HMOVBP, SPADDWORD PTRBP, 2000H;0A35H,0FFCH,2A35HPOPAX;2A35H,0FFEH,80AAH8、 请用三种不同类型的指令将寄存器BX清零。MOV BX,0; XOR BX,BX; SUB BX,BX9、 写出程序段把DX,AX中双字类型的数据算术右移4位,若DX,AX的初始内容分别是80F2H和9822H,那么该程序段完成后DX,AX的内容各是多少?MOV CX,4NEXT:SAR DX,1RCR AX,1LOOP NEXT(DX)=F80FH,(AX)=2982H10、 读程序段,回答问题。(1)INAL, 82H(2)INAL, 82HXORAH, AHMOVBL, 0AHADDAX, AXIMULBLMOVBX, AXMOVCX, 2SHLBX, CLADDAX, BX问:1.程序段(1)的功能是什么? 输入82H端口的内容,并将其乘102.若从82H端口读入的数据为05H,完成程序段(1)后(AX)? 50IN AL,82HMOV BL,0AHMUL BL3.若读入的字节为A5H,完成程序段(1)后,(AX)?又问程序段(1)与程序段(2)的功能是否相同(忽略BX的变化)? 1650,不同4.用最简单的指令完成与(1)相同的功能,请写出这些程序。11、 利用移位、传送等指令完成(AX)与16的乘法。MOV CL,4SHL AX,CL12、 写出完成以下功能的指令或指令序列(要求尽可能短)。(1) 把BX的高三位置1,其他各位求反;NOT BXOR BX,E000H(2) 从地址为1200H端口读入一字节数据存入AH寄存器;MOV DX,1200HIN AL,DXMOV AH,AL(3) 把AL中的有符号数除以3。CBWMOV BL,-3IDIV BL13、 比较AX,BX,CX中有符号数的大小,将最大的数放在AX中,请编程。CMP AX,BXJG NEXTXCHG AX,BXNEXT:CMP AX,CXJG DONEXCHG AX,CXDONE:14、 编写一程序段,在数据区0000:2000开始100字节范围内,查找字符A,找到,则将偏移地址送入DX,没有找到,则结束。MOV AX,0MOV DS,AXMOV DI,2000HMOV CX,100MOV AL,ACLDNEXT:CMP AL, DIJZ FOUNDINC DILOOP NEXTJMP DONEFOUND:MOV DX,DIDONE: