汇编作业题2

2-1下面的MOV指令完成什么操作?

(a)MOV AX,BX;          把BX的内容移动到AX中

 

(c)MOV BL,CH;      把CH的内容移动到BL中

 

2-2 列出寄存器寻址使用的8位寄存器

答:AH、AL、BH、BL、CH、CL、DH和DL

 

2-3列出寄存器寻址使用的16位寄存器

答:AX、BX、CX、DX、SI、DI、SP、BP和段寄存器。

 

2-6 指令MOV  BL,CX 错在哪里?

答:BL和CX的位数不一致。

 

2-7 指令MOV DS,SS 错在哪里?

答:两个寄存器之间是不能直接传送数据的。

 

2-13 指令 MOV [BX],[DL] 错在哪里

答:目标操作数寻址方式错误。

 

 

2-17给定DS=1200H,BX=0100H和SI=0250H。假定按实模式操作,确定下面每条指令寻址的地址:

(a)MOV [100H],DL;         12100H

(c)MOV DL,[BX+100H];  12200H

 

2-18 给定DS=1100H,BX=0200H,LIST=0250和SI=0500H。假定按实模式操作,确定下面每条指令寻址的地址:

(b) MOV CL,LIST[BX+SI];     11950H

 

 

2-19 给定DS=1300H,SS=1400H,BP=1500H和SI=0100H。假定按实模式操作,确定下面每条指令寻址的地址:

(b) MOV AL,[BP+SI+200H];     14800H

 

2-20 哪些基址寄存器可以寻址堆栈段的数据?

答:SP ,SS

 

 

3.1 给出(BX)=637DH,(SI)=2A9BH,偏移量D=7237H,尝试指出下列每一种寻址模式的有效地址。

(1) 立即寻址;

(2) 直接寻址

(3) 用BX的寄存器寻址;

(4) 用BX的寄存器间接寻址;

(5) 用BX的寄存器相对寻址;

(6) 基址变址寻

(7)相对基址变址寻

答案:

(1)无

(2)EA=7237H

(3)无

(4)EA=637DH

(5)EA=D+[BX]=7237H+637DH=0D5B4H

(6)EA=[BX]+[SI]=637DH+2A9BH=8E18H

(7)EA=D+[BX]+[SI]=7237H+637DH+2A9BH=1004FH

 

 

3.2  根据下列要求, 写出相关的汇编语言指令。

(1) 把BX 的内容和DX 的内容相加,结果放入DX 中。

(2) 把AL的内容加上内存地址的内容,并把结果放到AL中。内存地址由BX和SI进行基址变址寻址所得。

(3)把CX的内容加上内存地址的一个字,并把结果放到内存地址中。内存地址由BX和偏移量0B2H进行寄存器相对寻址所得。

(4) 把内存地址的内容与数2A59H相加,并把结果放入内存地址。内存地址由偏移量0524H进行直接寻址所得。

(5) 把数值0B5H 与AL 寄存器的内容相加, 结果放入AL寄存器。

 

答案:

 (1)ADD DX, BX

(2)ADD AL, BX[SI]

(3)ADD  WORD PTR 0B2H [BX], CX

(4)ADD WORD PTR [0524H], 2A59H

(5)ADD AL,0B5H

 

 

 

3.3 写出指令,把首址是BLOCK的字数组中的第六个字移入DX寄存器。使用如下的寻址方式。

(1) 寄存器间接寻址

(2) 寄存器相对寻址

(3) 基址变址寻址

 

答案:            

(1) LEA BX, BLOCK+10

MOV  DX, WORD PTR [BX]

(2) LEA SI, BLOCK

MOV DX, WORD PTR 0AH[SI]  

(3)LEA BX, BLOCK

 MOV  SI, 0AH

MOV  DX, WORD PTR [BX][SI]

 

 

3.4 给出(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H, (20101)=34H,(20102)=56H, (20103)=78H, (21200)=2AH,(21201)=4CH,(21202)=B7H, (21203)=65H,

尝试解释:执行指令后,AX寄存器的内容。

(1)  MOV  AX, 1200H

(3) MOV AX, [1200H]

(5) MOV AX, 1100[BX]

(7) MOV AX, 1100[BX][SI]

 

答案:

(1) (AX)=1200H

(3)(AX)=4C2AH

(5)(AX)=4C2AH

(7)(AX)=65B7H

 

 

 

3.8 给出(DS)=2000H,(ES)=2100H,(SS)=00A0H,(BX)=0100H,(BP)=0010H,数据段中VAL 的偏移地址是0050H,指出源操作数段得寻址方式和物理地址。

(2) MOV AX, BX

(4) MOV AX, VAL

(6) MOV AX, ES:[BX]

(8) MOV AX, [SI]

(10)MOV AX, VAL[BX]

(12)MOV AX, VAL[BX][SI]

 

答案:

(2)寄存器寻址

(4)直接寻址,物理地址=20050H

(6)寄存器间接寻址,物理地址=21100H

(8)寄存器间接寻址,物理地址=200A0H

(10)寄存器相对寻址,物理地址=20150H

(12)相对基址变址寻址,物理地址=201F0H

 

 

 

问题:

单选

当执行POP [BX] 和寻找目标操作数时,段地址跟偏移地址是在( B )中。

  a. 无段地址也无偏移地址

  b.DS 和BX中

  c.ES 和 BX中

  d.SS 和 SP中

 

 

2.下列指令中, 哪个是错的?

 

 a.  MOV  SS:[BX+DI],1000H

 b.  MOV  DX, 1000H

 c.  MOV  WORD PTR [BX],1000H

 d.  MOV  DS, 2000H

 

答案:

d. 错误:  立即数到段寄存器

 

 

简答:

1. 指出下列的错误:

MOV AH, BX                  ;操作数大小不同

MOV [BX], [SI]                ;出错:内存到内存

MOV AX,[SI] [DI]              ;出错: 把[SI][DI]放到一起

MOV MYDAT [BX][SI], ES:AX   ; 与2同,

MOV BYTE  PTR[BX], 1000     ; 与1同,

MOV BX, OFFSET MYDAT[SI]   ;删除[SI]

MOV CS, AX                   ;出错: CS 是第一操作数

 

 

给出DS = 6400h,BX = 0743h, SS=6500H, BP = CA40h, SI = 2100h 和 DI = 04A4h, 而且BETA是一个偏移量为0202h的数据项 (名称/变量), 对于下列每一条指令指出其寻址方式且计算出源操作数和目标操作数的20-位的物理地址:

(i) MOV AL, [BP][SI]   基址变址寻址  72B40H

(ii) MOV [BX + DI + 4],

 AX 相对基址变址寻址   64BEBH

(iii) MOV BETA, BL  直接寻址  64202H

(iv) MOV AH, [BP][DI + BETA]  

相对基址变址变址  710E6

(v) LODSB   寄存器寻址 66100H

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小巫技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值