微机原理习题答案3、4
3.1机器指令分为哪几部分?每部分的作用是什么?
【解】:每条机器指令由两部分组成:操作码字段和地址码字段。操作码字段:用来说明该指令所要完成的操作。地址码字段:用来描述该指令的操作对象。一般是直接给出操作数,或者给出操作数存放的寄存器编号,或者给出操作数存放的存储单元的地址或有关地址的信息。
3.2指出下列MOV指令的源操作数的寻址方式。
MOVAX,1234H
MOVAX,BX
MOVAX,[BX]
MOVAX,TABLE;TABLE ;TABLE是一个变量名
MOVAX,[1234H]
MOVAX,[BX+1234H]
MOVAX,[BP][SI]
MOVAX,[BX+SI-1234H]
【解】:MOVAX,1234H立即寻址
MOVAX,BX寄存器寻址
MOVAX,[BX]寄存器间接寻址
MOVAX,TABLE;TABLE是一个变量名直接寻址方式
MOVAX,[1234H]直接寻址方式
MOVAX,[BX+1234H]寄存器相对寻址
MOVAX,[BP][SI]基址变址寻址
MOVAX,[BX+SI-1234H]相对基址变址寻址
3.3 设:(DS)=2000H,(BX)=0100H,(SS)=1000H,(BP)=0010H,TABLE的物理地址为2000AH,(SI)=0002H。求下列每条指令源操作数的存储单元地址:
MOVAX,[1234H]
MOVAX,[BX]
MOVAX,TABLE[BX]
MOVAX,[BP]
MOVAX,[BP][SI]
【解】:源操作数存储单元地址:(DS)×10H + EA =2000H×10H+1234H=21234H
源操作数存储单元地址:(DS)×10H +(BX)=2000H×10H+0100H=20100H
源操作数存储单元地址:(DS)×10H+EA=2000H×10H+0100H+000AH=2010AH
源操作数存储单元地址:(SS)×10H+EA=1000H×10H+0010H=10010H
源操作数存储单元地址:(SS)×10H+EA=1000H×10H+0010H+0002H =10012H
3.4设ARRAY是字数组的首地址,写出将第5个字元素取出送AX寄存器的指令,要求使用以下几种寻址方式:
⑴ 直接寻址 ⑵ 寄存器间接寻址 ⑶ 寄存器相对寻址 ⑷ 基址变址寻址
【解】:⑴ 直接寻址 ⑵ 寄存器间接寻址 ⑶ 寄存器相对寻址 ⑷ 基址变址寻址
MOV AX, ARRAY+8 MOV BX, ARRAY+8 MOV BX, 8 LEA BX, ARRAY
MOV AX, [BX] MOV AX, ARRAY[BX] MOV SI, 8
MOV AX,[BX+SI]
3.5 设当前(CS)=2000H,(IP)=2000H,标号NEXT定义在当前代码段偏移地址为0100H处,(DS)=1000H,(BX)=1000H,(11000H)=00H,(11001H)=30H,数据段定义的字变量ARRAY的内容为1000H,试写出下列转移指令的目标转移地址。
⑴ JMPNEARPTR
⑵ JMPBX
⑶ JMPWORDPTRARRAY
【解】:⑴ JMPNEARPTR 此转移指令的目标转移地址为:20100H
⑵ JMPBX 此转移指令的目标转移地址为:21000H
⑶ JMPWORDPTRARRAY 此转移指令的目标转移地址为:23000H
3.6设当前(CS)=2000H,(IP)=2000H,标号NEXT定义在3000H:1000H处。当前(DS)=1000H,(BX)=1000H,(11000H)=00H,(11001H)=03H,(11002H)=00H,(11003H)=30H,数据段定义的字变量ARRAY的内容为0300H,(ARRAY+2)=3000H,试写出下列转移指令的目标转移地址。
⑴ JMPFARPTRNEXT
⑵ JMPDWORDARRAY
【解】:⑴ JMPFARPTRNEXT 此转移指令的目标转移地址为:31000H
⑵ JMPDWORDARRAY 此转移指令的目标转移地址为:30300H