2024年4月3日发(作者:屈心宜)
2.9如果GDT寄存器值为FFH,装人LDTR的选择符为0040H,试问装人描述符高
速缓存的LDT描述符的起始地址是多少?
解:GDT寄存器的高32位和低16位分别为GDT的基址和段限,所以:GDT的基址
=00130000H
LDTR选择符的高13位D
15
~D
3
=B是该LDT描述符在GDT中的序号,所
以:
LDT描述符的起始地址= GDT的基址
十LDT描述符相对于GDT基址的偏移值
=00130000H+8×8=00130040H
2.10假定80486工作在实模式下,(DS)=1000H, (SS)=2000H, ( SI ) = El07FH, ( BX )=0040H,
(BP) = 0016H,变量TABLE的偏移地址为0100H。请间下列指令的源操作数字段是什么寻址
方式?它的有效地址(EA)和物理地址(PA)分别是多少?
(1)MOV AX,[1234H ] (2) MOV AX, TABLE
(3) MOV AX,[BX+100H] (4) MOV AX,TABLE[BPI[SI]
解:(1)直接寻址,EA=1234H , PA =(DS)×16+EA=11234H。
(2)直接寻址,EA= O100H,PA= (DS)×16+EA=10100H。
(3)基址寻址,EA=( EBX)+100H =0140H,PA= (DS) × 16+EA=10140H。
(4)带位移的荃址加变址寻址。(EA)= (BP)+[SI]十TABLE的偏移地址=0195H
PA=(SS)×16+EA=20195H}
2.11下列指令的源操作数字段是什么寻址方式?
(1)MOV EAX , EBX (2)MOV EAX,[ ECX] [EBX ]
(3) MOV EAX,[ESI][EDX * 2] (4)MOV EAx,[ ESI*8]
解:(1)寄存器寻址。
(2)基址加变址寻址。
(3)基址加比例变址寻址。
(4)比例变址寻址。
2.12分别指出下列指令中源操作和目的操作数的寻址方式。
式表示出EA和PA。
(1)MOV SI,2100H (2)MOV CX, DISP[BX]
(3) MOV [SI] ,AX (4)ADC AX,[BX][SI]
(5)AND AX,DX (6) MOV AX,[BX+10H]
(7) MOV AX,ES:[BX] (8) MOV Ax, [BX+SI+20H]
(9) MOV [BP ].CX (10) PUSH DS
解:(1) 源操作数是立即数寻址;目的操作数是寄存器寻址。
(2)源操作数是基址寻址,EA=(BX)+DISP,PA=(DS)×16+(BX)+DISP
目的操作数是寄存器寻址。
(3)源操作数是寄存器寻址;
目的操作数是寄存器间接寻址,EA=(SI).PA=(DS) × 16十(SI)。
(4)操作数是基址加变址寻址,EA= (BX)+(SI).PA= (DS) × 16十(BX)+(SI)
目的操作数是寄存器寻址。
(5)源操作数和目的操作数均为寄存器寻址。
(6)源操作数是基址寻址,EA=(BX)+= (DS) × 16十(BX)+10H
目的操作数是寄存器寻址。
(7)源操作数是寄存器间接寻.EA= (Bx).PA= (ES) × 16+(BX)
目的操作数是寄存器寻址。
(8)源操作数是带位移的基址加变址寻址:
EA=(BX)+(SI)+= (DS) × 16+(BX)+(SI)+20H ;
目的操作数是寄存器寻址。
(9)源操作数是寄存器寻址;
目的操作数是寄存器间接寻址,EA=(BP).PA= (SS) × 16十(BP)。
(10)源操作数是寄存器寻址;
目的操作数是堆栈寻址,EA=(SP)-=(SS) × 16十(SP)-2。
2.13已知80486工作在实地址方式下。其中一些寄存器的内容和一些存储单元的内容如图
2.1所示,试指出下列各条指令执行后。AX中的内容。
(1) MOV AX , 2010H
(2) MOV AX, BX
(3) MOV AX ,[1200H]
(4) MOV AX , [BX ]
(5) MOV AX, 1100H[BX]
(6) MOV AX,[BX][SI]
(7) MOV AX, 1100H[Bx+SI]
( 8) LEA AX,[SI]
解:(1) (AX) =2010H;
(2) (AX)=(BX)=0100H;
(3) (AX)= [32100H]=4C2AH:
(4)(AX)= [ 30100H]=3412H;
(5)(AX)= [31202H]=4C2AH;
(6)(AX)= [30102H]=7856H;
(7) (AX)= [31202H]=65B7H;
(8)(AX)=(SI)=0002H
2.15已知数据如图2.2所示,数据是低位在前,按下列要求编写程序段:
(1)完成NUM1和NUM2的两个字数据相加,和存放在NUM1中。
(2)完成NUM 1单元开始的连续4个字节数据相加,和不超过一
字节,放在RES单元。
(3)完成NUM1单元开始的连续8个字节数据相加,和为Ifi位,
放在RES和RES十1两个单元中。
2024年4月3日发(作者:屈心宜)
2.9如果GDT寄存器值为FFH,装人LDTR的选择符为0040H,试问装人描述符高
速缓存的LDT描述符的起始地址是多少?
解:GDT寄存器的高32位和低16位分别为GDT的基址和段限,所以:GDT的基址
=00130000H
LDTR选择符的高13位D
15
~D
3
=B是该LDT描述符在GDT中的序号,所
以:
LDT描述符的起始地址= GDT的基址
十LDT描述符相对于GDT基址的偏移值
=00130000H+8×8=00130040H
2.10假定80486工作在实模式下,(DS)=1000H, (SS)=2000H, ( SI ) = El07FH, ( BX )=0040H,
(BP) = 0016H,变量TABLE的偏移地址为0100H。请间下列指令的源操作数字段是什么寻址
方式?它的有效地址(EA)和物理地址(PA)分别是多少?
(1)MOV AX,[1234H ] (2) MOV AX, TABLE
(3) MOV AX,[BX+100H] (4) MOV AX,TABLE[BPI[SI]
解:(1)直接寻址,EA=1234H , PA =(DS)×16+EA=11234H。
(2)直接寻址,EA= O100H,PA= (DS)×16+EA=10100H。
(3)基址寻址,EA=( EBX)+100H =0140H,PA= (DS) × 16+EA=10140H。
(4)带位移的荃址加变址寻址。(EA)= (BP)+[SI]十TABLE的偏移地址=0195H
PA=(SS)×16+EA=20195H}
2.11下列指令的源操作数字段是什么寻址方式?
(1)MOV EAX , EBX (2)MOV EAX,[ ECX] [EBX ]
(3) MOV EAX,[ESI][EDX * 2] (4)MOV EAx,[ ESI*8]
解:(1)寄存器寻址。
(2)基址加变址寻址。
(3)基址加比例变址寻址。
(4)比例变址寻址。
2.12分别指出下列指令中源操作和目的操作数的寻址方式。
式表示出EA和PA。
(1)MOV SI,2100H (2)MOV CX, DISP[BX]
(3) MOV [SI] ,AX (4)ADC AX,[BX][SI]
(5)AND AX,DX (6) MOV AX,[BX+10H]
(7) MOV AX,ES:[BX] (8) MOV Ax, [BX+SI+20H]
(9) MOV [BP ].CX (10) PUSH DS
解:(1) 源操作数是立即数寻址;目的操作数是寄存器寻址。
(2)源操作数是基址寻址,EA=(BX)+DISP,PA=(DS)×16+(BX)+DISP
目的操作数是寄存器寻址。
(3)源操作数是寄存器寻址;
目的操作数是寄存器间接寻址,EA=(SI).PA=(DS) × 16十(SI)。
(4)操作数是基址加变址寻址,EA= (BX)+(SI).PA= (DS) × 16十(BX)+(SI)
目的操作数是寄存器寻址。
(5)源操作数和目的操作数均为寄存器寻址。
(6)源操作数是基址寻址,EA=(BX)+= (DS) × 16十(BX)+10H
目的操作数是寄存器寻址。
(7)源操作数是寄存器间接寻.EA= (Bx).PA= (ES) × 16+(BX)
目的操作数是寄存器寻址。
(8)源操作数是带位移的基址加变址寻址:
EA=(BX)+(SI)+= (DS) × 16+(BX)+(SI)+20H ;
目的操作数是寄存器寻址。
(9)源操作数是寄存器寻址;
目的操作数是寄存器间接寻址,EA=(BP).PA= (SS) × 16十(BP)。
(10)源操作数是寄存器寻址;
目的操作数是堆栈寻址,EA=(SP)-=(SS) × 16十(SP)-2。
2.13已知80486工作在实地址方式下。其中一些寄存器的内容和一些存储单元的内容如图
2.1所示,试指出下列各条指令执行后。AX中的内容。
(1) MOV AX , 2010H
(2) MOV AX, BX
(3) MOV AX ,[1200H]
(4) MOV AX , [BX ]
(5) MOV AX, 1100H[BX]
(6) MOV AX,[BX][SI]
(7) MOV AX, 1100H[Bx+SI]
( 8) LEA AX,[SI]
解:(1) (AX) =2010H;
(2) (AX)=(BX)=0100H;
(3) (AX)= [32100H]=4C2AH:
(4)(AX)= [ 30100H]=3412H;
(5)(AX)= [31202H]=4C2AH;
(6)(AX)= [30102H]=7856H;
(7) (AX)= [31202H]=65B7H;
(8)(AX)=(SI)=0002H
2.15已知数据如图2.2所示,数据是低位在前,按下列要求编写程序段:
(1)完成NUM1和NUM2的两个字数据相加,和存放在NUM1中。
(2)完成NUM 1单元开始的连续4个字节数据相加,和不超过一
字节,放在RES单元。
(3)完成NUM1单元开始的连续8个字节数据相加,和为Ifi位,
放在RES和RES十1两个单元中。