段内间接寻址
      转向的有效地址是一个寄存器或存储单元的内容。
    (可用除立即数以外的任何一种数据寻址方式得到)
  例: TABLE = 20A2H  (BX) = 1256H    (SI) = 528EH
          (DS) = 2000H  (232F8H) = 3280H  (264E4H) = 2450H
             
              JMP  BX                                                    ; (IP)=1256H
             
              JMP  TABLE[BX]    20A2+1256=32F8  20000ds+32F8
              JMP  WORD PTR  TABLE[BX]              ; (IP)=3280H
             
              JMP  [BX][SI]
              JMP  WORD PTR  [BX][SI] 20000+(1256+528E)= 264E4H=2450H    ; (IP)=2450H
一、 单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填
在题干的括号内。每小题1分,共20分)
无条件转移指令 – JMP
段内直接转移: JMP  disp        指令中给出的8/16位的位移量加到IP。CS保持不变JMP    NEXT  ;转向NEXT
段内间接转移: JMP  reg/mem  reg/mem中的16位偏移地址送到IP。CS保持不变。注意:目标地址以段内偏移的形式给出,而不是相对于IP的位移量,所以它是一个16位的操作数。
JMP  BX  ;指令执行后,执行后IP=BX       
JMP  WORD  PTR[BX+DI] ;设指令执行前,DS=3000H(段地址),BX=1300H,DI=1200H,[32500H]=2350H,则指令执行后, IP=2350H,于是转向代码段的偏移地址2350H处开始执行。
段间直接转移    JMP  segment:offset          指令中给出的16位的段和16位的偏移地址送到CS和IP
JMP    2000H:1000H  执行时,(IP)←1000H,(CS)←2000H
段间间接转移    JMP  mem32          mem32中的16位的段和16位的偏移地址送到CS和IP
JMP    DWORD PTR[SI]设指令执行前:DS=4000H,SI=1212H, [41212H]=1000H,[41214H]=4A00H
则指令执行后:IP=1000H,CS=4A00H
于是转到4A000+1000=4B000H处开始执行指令。
db byte 8  dw word 16
偏移地址就是计算机里的内存分段后,在段内某一地址相对于段首地址(段地址)的偏移量. 如8086存储系统中 20位的物理地址(就是数据存储的实际地址)=16位的段地址*16+16位的偏移量 数据段DS寄存器的值=0088H 偏移地址=22H 那么偏移后的地址等于 0088H*16H+22H=00880+22H=008A2H
1. 已知某操作数的物理地址是2117AH,则它的段地址和偏移地址可能是(A )。
  A.2025∶0F2A    B.2108∶00EA
C .2000∶017A    D.2100∶117A
2. 某程序装入内存后,DS=1200H,CS=1400H,则程序中数据段中的数据最多是(C )字节。
  A.2K        B.4K      C.8K        D.64K
C14000H-12000H=2000H,转换成10进制是8192,即8k

3. 以寄存器DI间接寻址的存储器字节单元内容加1的指令是( C )。
  A.INC  [DI]      B.INC  DI  C.INC  BYTE PTRDI     D.ADD [DI],1  [di]地址
4.有语句:COUNT  EQU  256,下列四种叙述中,正确的是(C)。
A.COUNT是变量    B.COUNT占用一个字节存储单元
C.COUNT是符号常数  D.COUNT占用二个字节存储单元
EQU是宏定义 COUNT就等于256
比如:s equ bx+si  mov cx[s]相当于如下指令:mov cx[bx+si]
5.下面指令中,源操作数的寻址方式为立即寻址的是(B)。
  A.MOV  AX,OFFSET A  B.MOV  AXA
  C.MOV  AX,A+1    D.MOV  AX,A[BX]
OFFSET操作将得到变量的偏移值,但对基址变址方式形成的值在汇编指令时还是未知的  MOV  AL, ‘A’
6.下面XCHG指令语句中,语法正确的是( B )
  A.XCHG  AX,DS      B.XCHG  BL,[BX]
  C.XCHG  AL,OFH    D.XCHG[SI],[DI]
    交换指令:  XCHG  OPR1, OPR2    执行操作:  (OPR1)    (OPR2)
  *  不影响标志位      *  不允许使用段寄存器    例:XCHG  BX, [ BP+SI ]
汇编table指令什么意思

7.设(AL)=63H(BL)=29H执行下面指令后( C)
SUB  AL,BL
DAS
AX的内容是
  A.(AX)=0304H      B.(AX)=0034    C.(AX)=0034H      D.(AX)=0304
8.设BX=1234H,DS=2000H,(21234H)=5678H,则指令“LEA  SI,[BX]”执行后的结果是
(B)
  A.SI=5678H      B.SI=1234H      C.SI=2000H      D.SI=3234H
9.设DF=0,SI=20H,CX=10,执行REP  LODSW指令后,SI中的内容是(D)
  A.20H        B.30H        C.34H        D.40H 循环一次 si加二
.REP重复串操作直到(CX)=0为上 格式: REP  stringprimitive 其中StringPrimitive可为MOVS,LODSSTOS指令 执行的操作: 1)(CX)=0则退出REP,否则往下执行. 2)(CX)<-(CX)-1 3)执行其中的串操作 4)重复1)~3) lodsblodswlodsd串读取指令,是将数据段中的字节(sb),字(sw),双字(sd)读取至AL(字节),AX(字),EAX(双字)中
10.AL=0A8H,CL=23H,执行乘法指令MUL CL,标志位OF,CF的值分别是(A)OF溢出ov 1 nv 0 CF进位cy 1 nc 0
  A.OF=1,CF=1      B.OF=1,CF=0        C.OF=0,CF=1      D.OF=0,CF=0 不确定
字节操作数  (AX)    (AL) * (SRC)                      字操作数      (DX, AX)    (AX) * (SRC)
11.已知AX=0139H,BL=36H,执行下列指令序列,则AX=(B )。
ADD AL,BL
AAA  AAA      加法的ASCII码调整指令
  A.016FH        B.0175H       C.0205H         D.0115H
12.将AX中有符号数除以4的正确指令序列是( C )。
  A.SHR AX,1  B.SAR AX,1  C.IDIV 4  D.DIV 4
无符号数除法指令:  DIV  SRC    带符号数除法指令:  IDIV  SRC
字节操作  (AL)  (AX) / (SRC) 的商      (AH)  (AX) / (SRC) 的余数
字操作      (AX)  (DX, AX) / (SRC) 的商      (DX)  (DX, AX) / (SRC) 的余数
*  AX (DX,AX) 为隐含的被除数寄存器。  *  AL (AX) 为隐含的商寄存器。    *  AH (DX) 为隐含的余数寄存器。
*  SRC不能为立即数。
13.已知CS=2300H,DS=2400H,执行下列指令序列后,CS和DS值是( D  )。
PUSH  CS (2300H压栈到CS)
POP  DS(然后出栈倒DS)
  A.CS=0    B.CS=2400H      C.CS=2400H      D.CS=2300H
  DS=2300H   DS=2300H       DS=2400H       DS=2300H
进栈指令: PUSH  SRC    执行操作:  (SP)    (SP) – 2      ( (SP)+1,  (SP) )    (SRC)
出栈指令: POP  DST    执行操作:  (DST)    ( (SP)+1,  (SP) )      (SP)    (SP) + 2
堆栈:先进后出的存储区,段地址存放在SS中,  SP在任何时候都指向栈顶,进出栈后自动修改SP
堆栈操作必须以字为单位。  *不影响标志位 
不能用立即寻址方式  PUSH  1234H            *  DST不能是CS        POP  CS   
14.用转移表法的多分支程序设计,分支表是建在( B )中。
    A.代码段        B.数据段      C.附加段        D.堆栈段
15.扩展名是EXE的汇编语言可执行程序用DOS功能调用返回操作系统指令是( B )。
      A.MOV  AX,4CH      B.MOV  AX,4C00H      C.MOV  AL,4CH      D.MOV  AH,2CH
16BUF1 DB 3 DUP02 DUP 123   

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。