求汇编语言高人指点

来源:百度知道 编辑:UC知道 时间:2024/06/20 10:20:58
数据段定义:
DSEG SEGMENT
DATA1 DW 10DUP(?)
STRING DB ‘123’
DSEG ENDS
求1)MOV BX,OFFSET DATA2答案0003H
2)LEA SI,STRING答案0017H
需要过程~求达人帮忙
DTATA2=DATA1,笔误了~

如果是求BX和SI执行后的值,二楼还有运行,不运行也知道是0000H,和0014H!

mov bx, offset data1意思是将data1的位置送入BX中,DATA1位于数据段的最开始位置,编址当然是从0开始的,这不用说,送入BX的是0,data1开辟了10个DW的空间,虽然里边没有数据,但10个DW(字)的位置还是要编址的。DW是字空间,编址时是用的字节用编的。所以是20个字节,由于机器是用的16进制,当然SI被送入的数据是0014H,LEA SI, String是将标号的位置装入SI,作用同mov si, offset string。这不用多说的。

但是如果你是看的清单文件,查看当前的地址的话,DATA1是0003H,因为dseg segment是一条伪指令,作用是开辟一个段,命令是要点用空间的,所以清单文件上显示的是0003H,以后的顺次相加。但BX与SI等寄存器的值是不改变的。

不管如何说,你求BX与SI的值的话,二楼就是正确的!不运行也要看出来!

说实话哈,不知道你的答案怎么得来的!
我运行的结果BX=0000;si=0014H

不具体,不知道你要求什么