汇编语言寻址方式及指令系统
- 格式:ppt
- 大小:264.50 KB
- 文档页数:15
1、下列指令属于基址加变址寻址方式的是( MOV DX,DS:[BP][SI] )。
DX2、当程序顺序执行时,每取一条指令语句,IP指针增加的值是( D )。
DXA.1 B.2 C.3 D.由指令长度决定的3、下列属于合法的指令是( D ) DXA.MOV DS,ES B.MOV [SI],[DI] C.MOV AX,BL D.MOV [DI],BL4、若AX=349DH,CX=000FH。
则执行指令AND AX,CX后,AX的值是( 000DH )。
DX5、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是( 85B92H ) DX6、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( B ) DXA、AX,BX,CX,DXB、BX,BP,SI,DIC、SP,IP,BP,DXD、CS,DS,ES,SS7、对寄存器AX的内容乘以4的正确指令序列是( SHL AX,1 SHL,AX,1 )。
DX8、执行INC指令除对SF、ZF有影响外,还要影响的标志位是( OF,AF,PF )。
DX9、设DH=10H,执行NEG DH指令后,正确的结果是( DH=0F0H CF=1 )。
DX10、下列传送指令中有语法错误的是( A )。
DXA、MOV CS,AXB、MOV DS,AXC、MOV SS,AXD、MOV ES,AX11、下面指令执行后,改变AL寄存器内容的指令是( D )。
DXA、TEST AL,02HB、OR AL,ALC、CMP AL,BLD、AND AL,BL12、执行除法指令后,影响的标志位是( AF,CF,OF,PF,SF,ZF都不确定 )。
DX13、执行下面指令序列后,结果是( AX=0FF82H )。
DXMOV AL,82HCBW14、与MOV BX,OFFSET VAR指令完全等效的指令是( D )。
DXA、MOV BX,VARB、LDS BX,VARC、LES BX,VARD、LEA BX,VAR15、在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是( PARA )。
汇编语⾔--操作数的寻址⽅式(三)三、操作数的寻址⽅式操作数是指令或程序的主要处理对象。
如果某条指令或某个程序不处理任何操作数,那么,该指令或程序不可能有数据处理功能。
在CPU的指令系统中,除NOP(空操作指令)、HLT(停机指令)等少数指令之外,⼤量的指令在执⾏过程中都会涉及到操作数。
所以,在指令中如何表达操作数或操作数所在位置就是正确运⽤汇编指令的⼀个重要因素。
在指令中,指定操作数或操作数存放位置的⽅法称为寻址⽅式。
操作数的各种寻址⽅式是⽤汇编语⾔进⾏程序设计的基础,也是本课程学习的重点之⼀。
微机系统有七种基本的寻址⽅式:⽴即寻址⽅式、寄存器寻址⽅式、直接寻址⽅式、寄存器间接寻址⽅式、寄存器相对寻址⽅式、基址加变址寻址⽅式、相对基址加变址寻址⽅式等。
其中,后五种寻址⽅式是确定内存单元有效地址的五种不同的计算⽅法,⽤它们可⽅便地实现对数组元素的访问。
另外,在32位微机系统中,为了扩⼤对存储单元的寻址能⼒,增加了⼀种新的寻址⽅式——32位地址的寻址⽅式。
为了表达⽅便,我们⽤符号“(X)”表⽰X的值,如:(AX)表⽰寄存器AX的值。
1、⽴即寻址⽅式操作数作为指令的⼀部分⽽直接写在指令中,这种操作数称为⽴即数,这种寻址⽅式也就称为⽴即数寻址⽅式。
⽴即数可以是8位、16位或32位,该数值紧跟在操作码之后。
如果⽴即数为16位或32位,那么,它将按“⾼⾼低低”的原则进⾏存储。
例如:MOV AH, 80H ADD AX, 1234H MOV ECX, 123456HMOV B1, 12H MOV W1, 3456H ADD D1, 32123456H其中:B1、W1和D1分别是字节、字和双字单元。
以上指令中的第⼆操作数都是⽴即数,在汇编语⾔中,规定:⽴即数不能作为指令中的第⼆操作数。
该规定与⾼级语⾔中“赋值语句的左边不能是常量”的规定相⼀致。
⽴即数寻址⽅式通常⽤于对通⽤寄存器或内存单元赋初值。
图3.1是指令“MOV AX, 4576H”存储形式和执⾏⽰意图。
寻址⽅式和指令系统《微机原理》复习思考题第3章 8086的寻址⽅式和指令系统3.1 8086汇编语⾔指令的寻址⽅式有哪⼏类?⽤哪⼀种寻址⽅式的指令执⾏速度最快?3.2 直接寻址⽅式中,⼀般只指出操作数的偏移地址,那么,段地址如何确定?如果要⽤某个段寄存器指出段地址,指令中应如何表⽰?3.3 在寄存器间接寻址⽅式中,如果指令中没有具体指明段寄存器,那么,段地址如何确定?3.4 ⽤寄存器间接寻址⽅式时,BX,BP,SI,DI分别针对什么情况来使⽤?这四个寄存器组合间接寻址时,地址是怎样计算的?举例进⾏说明。
3.5 设DS=2100H,SS=5200H,BX=1400H,BP=6200H,说明下⾯两条指令所进⾏的具体操作:MOV BYTE PTR [BP], 2000MOV WORD PTR [BX], 20003.6 使⽤堆栈操作指令时要注意什么问题?传送指令和交换指令在涉及内容操作数时分别要注意什么问题?3.7 下⾯这些指令中哪些是正确的?哪些是错误的?如果是错误的,请说明原因。
XCHG CS, AXMOV [BX], [1000]XCHG BX, IPPUSH CSPOP CSIN BX, DXMOV BYTE[BX], 1000MOV CS, [1000]3.8 8086系统中,当对SS和SP寄存器的值进⾏修改时,有什么特殊规定?这样做的原因是什么?[解答] 凡是遇到给SS寄存器赋值的传送指令时,系统会⾃动禁⽌外部中断,等到本条指令和下条指令执⾏之后,⼜⾃动恢复对SS寄存器赋值前的中断开放情况。
这样做是为了允许程序员连续⽤两条指令分别对SS和SP寄存器赋值,同时⼜防⽌堆栈空间变动过程中出现中断。
3.9 以下是格雷码的编码表0——0000 1——0001 2——0011 3——0010 4——01105——0111 6——0101 7——0100 8——1100 9——1101请⽤换码指令和其他指令设计⼀个程序段,实现格雷码往ASCII的转换。