指出 寻址方式,并计算 物理地址(汇编练习题)

您所在的位置:网站首页 物理ax图像题目 指出 寻址方式,并计算 物理地址(汇编练习题)

指出 寻址方式,并计算 物理地址(汇编练习题)

2023-08-05 14:49| 来源: 网络整理| 查看: 265

文章目录 一、经典例题二、练习题三、概念题四、操作题

一、经典例题

题目:请指出下列指令的 源操作数 的寻址方式,并计算物理地址。

设(DS)=2000H,(ES)=2100H,(SI)=00A0H,(SS)=1500H, (BX)=0100H,

(BP)=0100H,数据变量WAL的偏移地址为0050H。

1.MOV AX,[100H]; 直接寻址 2000H*10H+100H=20100H 2.MOV AX,[BX]; 寄存器间接寻址 2000H*10H+0100H=20100H 3.MOV AX,ES:[BX]; 寄存器间接寻址 ES*10H+BX=2100H*10H+0100H=21100H ;“ES:[BX]”才对 4.MOV AX,[BP]; 寄存器间接寻址 SS*10H+BP=1500H*10H+0100H=15100H ;BP(或者SP),用SS。其他一般选DS。 5.MOV AX,[BX+10H]; 寄存器相对寻址 2000H*10H+0100H+10H=20110H 6.MOV AX,WAL[BX]; 寄存器相对寻址 2000H*16+0100H+0050H=20150H 7.MOV AX,[BX][SI]; 基址加变址寻址 2000H*10H+0100H+00A0H=201A0H 8.MOV AX,WAL[BX][SI]; 基址变址相对寻址 20000H+0100H+0050H+00A0H=201F0H

栈段寄存器(SS, Stack Segment):存放栈段的 段描述符 索引(该段描述符中包含栈段的线性基址)。

数据段寄存器(DS(Data Segment)、ES、FS、GS):存放数据段的段描述符索引(这些描述符中均包含数据段的线性基址)。 其中,DS数据段含有程序使用的大部分数据,ES、FS和GS分别对应IA-32中引入的附加数据段。ES数据段可以为某些串指令存放目的数据。

1.汇编语言 SI DI BX BP SS DS 是什么 SI: 16位寄存器,源变址寄存器 DI: 16为寄存器,目的变址寄存器 BX: 16位寄存器(可分成2个8位寄存器BH,BL),基址寄存器 BP: 16位寄存器,基址指针寄存器 SS : 16位段寄存器,作用是存放当前堆栈段的段地址,一般和SP连用 DS: 16为段寄存器,作用是存放当前数据段的段地址 2.怎样根据这些求物理地址 有个公式: 物理地址 = 基础地址 + 偏移地址 = CS*10H(基础地址)+ IP(偏移地址) CS: 16位段寄存器,存放当前代码段的段地址 IP: 存放下一条要执行的指令的偏移地址 物理地址=段地址×16+偏移地址,指令中出现BP作地址,则其段地址为SS,否则就为DS。这里的16是十进制的。

Q:地址加法器是工作的? A:地址加法器可以将输入分为段地址和偏移地址,而输出则是物理地址, 其中 段地址×16 + 偏移地址 = 物理地址。

Q: 段地址为什么要乘 16或10H ? A:因为寄存器是16位的,乘 16 后相当于左移 4 位,留出来 4 个位置供偏移地址补上。加上后就变成了 20 位,就能放入地址总线中了。

二、练习题

1.现有AX=2000H,BX=1200H,DS=3000H,DI=0002H,(31200H)=50H,(3120H)=02H,(31202H)=40H,请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标志位ZF、CF的值。

A.ADD AX,1200H ;问AX=____3200____H ZF=_0____。 B.SUB AX,BX ;问AX=__e00_____H ZF=__0___。 C.MOV AX,[BX] ;问AX=____50____H CF=__0___。

SUB:减法 2000H-1200H=0E00H 借一当16,16-2=14 14就是E 在这里插入图片描述 进位标志CF(Carry Flag):主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。CY(1) NC(0) 零标志ZF(Zero Flag):如果计算结果的所有位是0,ZF=1,否则,ZF=0。ZR(1) NZ(0)

MOV AX,[BX]; 寄存器间接寻址 AX = DS×10+BX = 3000H*10H+1200H=31200H =50H

2.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21203H)=65H,说明下列指令执行后AX寄存器的内容。

(1)MOV AX,1200H 1200H (2)MOV AX,BX 100H (3)MOV AX,[1200H] 2AH (4)MOV AX,[BX] 12H (5)MOV AX,1100H[BX] 2AH (6)MOV AX,[BX][SI] 56H (7)MOV AX,1100H[BX][SI] B7H

3.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( A )

A. 1400H B. 77F8H C. 0000H D. 0FFFFH

在这里插入图片描述 4.设DS=2200H,BX=1000H,SI=0100H,偏移量D=0A2B1H,试计算出下列各种寻址方式下的有效地址,填入括号中

A.使用D的直接寻址( A2B1 ) B.使用BX的寄存器间接寻址( 1000 ) C.使用BX和D的寄存器相对寻址( B2B1 ) D.使用BX、SI和D的相对基址变址寻址( B3B1 ) E .使用BX、SI的基址变址寻址( 1100 )

5.分别指出下列指令中源操作数的寻址方式:

A. MOV SI,100( 立即寻址 ) B. MOV CX,DATA[SI]( 寄存器相对寻址 ) C.MOV [SI],AX( 寄存器寻址 ) D.ADD AX,[BX][DI]( 基址加变址寻址 )

6.设(SS)= 448AH,(SP)= 450H,执行 PUSH AX PUSHF 后,当前栈顶的物理地址=___ B ___。

A.44CE6H B.44CECH C.44CF4H D.44CF2H

在这里插入图片描述 SS×10+SP=448AH×10+ 044CH = 44CECH

分析:

PUSH AX; AX是16位寄存器,2个字节,所以SP-2 PUSHF; 把标志寄存器FLAGS的值入栈,也是2个字节,所以SP-2 SP-4=044CH 物理地址是: 448AH左移四位(乘十)+ 044CH = 44CECH

7.操作数直接存放在指令中,则它的寻址方式是( D )。

(A) 直接寻址 (B) 寄存器寻址 (C) 寄存器间接寻址 (D) 立即寻址

8.MOV AX,ES:COUNT[DI] 源操作数的寻址方式是( C )

A. 基址寻址  B. 立即寻址    C. 变址寻址  D. 基址变址寻址

9.指令MOV BX,MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为( B )

A. 17500H       B. 16500H     C. 14500H       D. 13500H

10.已知(DS)=3000H,(SS)=2500H,(BX)=0100H,(BP)=0040H,指令MOV AX,DS:[BP] 源操作数的物理地址是( B )。

A.25040H B. 30040H C.25100H D. 55040H

11.MOV BH,1000[SI],该指令中源操作数采用的寻址方式是( C )。

A.立即 B.直接 C.寄存器相对 D.寄存器间接 三、概念题

1.在ARM体系结构中,( A )寄存器作为连接寄存器,当进入子程序时或者处理器响应异常的时候,用来保存PC的返回值;( )寄存器作为处理器的程序计数器指针。

A.R14,R15 B.R13,R15 C.R13,R15 D.R14,R13

2.在下列ARM处理器的各种模式中,只有( B )模式不可以自由地改变处理器的工作模式。

A.系统模式(System) B.用户模式(User) C.终止模式(Abort) D.中断模式(IRQ)

3.设CS=2500H,DS=2500H,SS=2430H,BP=0200H,SI=0010H,DI=0206H,计算下列x86指令源操作数的物理地址。( D ) MOV AX,[BP+SI+4]

A.25214H B.25514H C.24214H D.24514H

解答:

看见BP 选SS SS*10+BP + SI + 4 = 24300 + 200 + 10 +4 = 24514

4.用十六进制工具查看IMAGE_ FILE_HEADER结构的情况时,以下字段中( B )代表可执行文件的目标CPU类型。

A.NumberOfSections B.Machine C.TimeDateStamp D.Characteristics

5.MOV AX,[BX+SI]的源操作数的物理地址是( A )

A.(DS)*10H+(BX)+(SI) B.(ES)*10H+(BX)+(SI) C.(SS)*10H+(BX)+(SI) D.(CS)*10H+(BX)+(SI) 四、操作题

1.若(CL)= 4,(AX)=0FF0FH,执行语句“ROR AX,CL”后 ,(AX)=( FFF0 )H。 在这里插入图片描述 ROR循环右移

1.现有AX=1500H,BX=1200H,DS=3000H,DI=0002H,(31200H)=70H,(3120H)=12H,(31202H)=50H,请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标志位ZF的值。(每空1分,共5分) ADD AX,2100H;问AX=( 3600 )H ZF=( 0 )。 SUB AX,BX;问AX=( 300 )H ZF=( 0 )。 MOV AX,[BX] ;问AX=( 70 )H 在这里插入图片描述

一段x86汇编程序如下:( ) PUSH BX; PUSH AX; PUSH BX POP CX; PUSH BX; PUSH AX POP CX 假设AX=1357H,BX=2468H,DS=2000H,SS=4000H则程序执行完后,CX等于多少?( A ) A.1357H B.4468H C.3357H D.6468H

设(SS)=0FFA0H,(SP)=00B0H,(AX)=8057H,(BX)=0F79H,执行指令"PUSH AX"后,(SP)= ( 00AE );再执行指令: PUSH BX POP AX 后,(SP)= ( 00AE ) ,(AX)= ( 0F79 ),(BX)= ( 0F79 )。

注:这里不用-r输入SS的值,只输入SP、AX、BX的值。

MOV AX, 0001H MOV BX, 0002H PUSH BX PUSH AX POP BX ;执行后 BX=( 01 ) POP AX ;执行后 AX=( 02 ) MOV AX,3F5FH ;执行后 AL=( 5F ) AND AL,0FH ;执行后 AL=( 0F ) 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3