阅读汇编程序题ORG 2000HNUM1 DB 200,2 DUP(1,2), 'ABC'NUM2 DW 12, '9'

阅读汇编程序题
ORG 2000H
NUM1 DB 200,2 DUP(1,2), 'ABC'
NUM2 DW 12, '9', 1234H,5678H
CNT EQ $-NUM2
LEA BX,NUM1
ADD BX,CNT
MOV AL,BYTE PTR NUM2+2
1.寄存器BX的值是_____,寄存器AL的值是_______。(求解答)
2.$这个符号是什么作用,该如何理解?
cwpdmqpwdg 1年前 已收到1个回答 举报

救命稻草悠悠 幼苗

共回答了16个问题采纳率:87.5% 举报

  ORG伪指令的功能: 告诉编译器下一条汇编语句的偏移地址
  ORG 2000H ;告诉编译器下一条汇编语句的偏移地址为2000H
  所以 NUM1 的 偏移地址是2000H

NUM1 DB 200,2 DUP(1,2), 'ABC'的占据的内存是
ds:2000 c8 01 02 01 02 41 42 43 共占据了8个字节
所以,NUM2的地址为2008H

NUM2 DW 12, '9', 1234H,5678H 占据的内存是
ds:2008 0c 00 39 00 34 12 78 56 共8个字节

CNT EQ $-NUM2 这条语句想表达的意思就是计算NUM2的长度(占据多少个字节)
所以CNT 的值是8

LEA 的功能: 取源操作数的偏移地址 赋值给 目的操作数中
LEA BX,NUM1 ;这条语句的意思是取NUM1的偏移地址给BX
所以现在BX的值是2000H


ADD BX,CNT ;将BX和CNT的值相加,然后将结果出入BX
因为BX = 2000H,CNT = 8 ,所以BX = 2000H + 8 = 2008H

MOV AL,BYTE PTR NUM2+2 ;取NUM2+2的值(字节)赋值给AL
首先,NUM2 = 2008H,NUM2+2 = 2010H,而2010H存放的值是39H
所以AL = 39H

终上所述
1.寄存器BX的值是_2008H___,寄存器AL的值是__39H_____。

2.$这个符号是什么作用,该如何理解?
答: 这个符号我理解是一个指针

如有不明白的地方,可以追问

1年前

4
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.024 s. - webmaster@yulucn.com