早教吧 育儿知识 作业答案 考试题库 百科 知识分享

阅读汇编程序题ORG2000HNUM1DB200,2DUP(1,2),'ABC'NUM2DW12,'9',1234H,5678HCNTEQ$-NUM2LEABX,NUM1ADDBX,CNTMOVAL,BYTEPTRNUM2+21.寄存器BX的值是

题目详情
阅读汇编程序题
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.$这个符号是什么作用,该如何理解?
▼优质解答
答案和解析
  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.$这个符号是什么作用,该如何理解?
答: 这个符号我理解是一个指针

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