西工大 微机原理 试题 例题

更新时间:2023-10-05 21:24:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

80X86寻址方式和指令系统

第三章 80X86寻址方式和指令系统

二、典型题解析

例3.1 设DS=2000H,SS=3000H,BP=0200H,SI=4000H,BUF=1000H,EAX=00001000H,EBX=00002000H,假设按16位实模式操作,确定下列每条指令访问内存的物理地址,并且指出源操作数及目的操作数的寻址方式。 (1)MOV AL,[1234H] (2)MOV EDX,[BX]

(3)MOV CL,[BX+100H] (4)MOV [SI],EBX

(5)MOV AH,BUF[BX+SI] (6)MOV EAX,[BP+1234H]

分析:DS给出数据段的段基址,因此,数据段的起始物理地址为(DS)×10H=20000H。ES给出堆栈段的段基址,因此,堆栈段的起始物理地址为(SS)×10H=30000H。若是存储器寻址,根据寻址方式的不同,可求出相应的有效EA,再加上段的起始物理地址即为将访问的内存单元的物理地址。

解(1)源操作数在数据段中,为直接寻址方式。

32位微型计算机原理典型题解析及习题

EA=1234H

物理地址=20000H+1234H=21234H 目的操作数为寄存器寻址

(2)源操作数在数据段中,为寄存器间接寻址。

EA=(BX)=2000H

物理地址=20000H

2000H=22000H

目的操作数为寄存器寻址

(3)源操作数在数据段中,为寄存器相对寻址。

EA=(BX)+100H=2100H

物理地址=20000H+2100H=22100H 目的操作数为寄存器寻址 (4)源操作数为寄存器寻址

目的源操作数在数据段中,为寄存器间

接寻址。

EA=(SI)=4000H

物理地址=20000H+4000H=24000H

(5)源操作数在数据段中,为相对基址变址寻址。

EA=(BX)+(SI)+BUF=2000H+4000H

80X86寻址方式和指令系统

+1000H=7000H

物理地址=20000H+7000H=27000H 目的操作数为寄存器寻址 (6)由于源操作数方括号中出现了BP,所以源操作数在堆栈段中,为寄存器相对寻址。

EA=(BP)+1234H=0200H+1234H=1434H

物理地址=30000H+1434H=31434H 目的操作数为寄存器寻址

【评注】注意操作数的位置,是立即数还是在寄存器中,或在存储器中。若为存储器寻址,还要判断操作数是在数据段中还是在堆栈段中。

注意区别直接寻址方式和立即寻址方式,(1)中源操作数是[1234H],该指令是要把数据段中1234H单元的内容送AL,并非将1234H送AL,是一种直接寻址方式。

使用寄存器间接寻址时应注意和寄存器寻址方式的区别。(2)中源操作数是[BX],BX寄存器中的内容2000H是一个地址,该指令是要把数据段中以2000H单元为首的一个双字数据送EDX寄存器中,并非将2000H送EDX。所以该指令源操作数为寄存器间接寻址。

例3. 2 (AL)=9AH,(BL)=0BCH,当分别进

32位微型计算机原理典型题解析及习题

行下列指令运算后,请写出标志位的内容。

(1)ADD AL,BL ;ZF=___,PF=___,CF=___,SF=___,OF=___。

(2)SUB AL,BL ;ZF=___,PF=___,CF=___,SF=___,OF=___。

(3)AND AL,BL ;ZF=___,PF=___,CF=___,SF=___,OF=___。

(4)OR AL,BL ;ZF=___,PF=___,CF=___,SF=___,OF=___。

(5)XOR AL,BL ;ZF=___,PF=___,CF=___,SF=___,OF=___。

解 (1) ADD AL,BL

1 0 0 1 1 0 1 0 (9AH) +1 0 1 1 1 1 0 0 (0BCH) 0 1 0 1 0 1 1 0 (有进位) 所以,ZF=0,PF=1,CF=1,SF=0,OF=1 (2) SUB AL,BL

1 0 0 1 1 0 1 0 (9AH)

-1 0 1 1 1 1 0 0 (0BCH) 1 1 0 1 1 1 1 0 (有借位) 所以,ZF=0,PF=1,CF=1,SF=1,OF=0

(3)对于“与”、“或”和“异或”逻辑运算,

80X86寻址方式和指令系统

将使CF=0,OF=0,而SF、ZF和PF则根据运算结果设置。

AND AL,BL

1 0 0 1 1 0 1 0 (9AH) ∧1 0 1 1 1 1 0 0 (0BCH) 1 0 0 1 1 0 0 0

所以,ZF=0,PF=0,CF=0,SF=1,OF=0 (3) OR AL,BL

1 0 0 1 1 0 1 0 (9AH)

∨1 0 1 1 1 1 0 0 (0BCH)

1 0 1 1 1 1 1 0

所以,ZF=0,PF=1,CF=0,SF=1,OF=0 (4) XOR AL,BL

1 0 0 1 1 0 1 0 (9AH)

?1 0 1 1 1 1 0 0 (0BCH) 0 0 1 0 0 1 1 0

所以,ZF=0,PF=0,CF=0,SF=0,OF=0

例3.3 判断下列指令是否正确,若有错误,请指出原因,并改正。

(1)MOV BL,OFFSET BLOCK (2)LEA DI,[BX+SI] (3)PUSH AL

本文来源:https://www.bwwdw.com/article/pipd.html

Top