若程序的数据段定义如下,写出各指令语句独立执行后的结果:
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/08/01 08:05:34
若程序的数据段定义如下,写出各指令语句独立执行后的结果:
DSEG SEGMENT
DATA1 DB 10H,20H,30H
DATA2 DW 10 DUP(?)
STRIGN DB '123'
DSEG ENDS
(1) MOV AL,DATA1
(2) MOV BX,OFFSET DATA2
(3) LEA SI,STRING
ADD DI,SI
答案给出的解释是这样的:
(1) 取变量DATA1的值.指令执行后是,AL = 10H.
(2) 变量DATA2的偏移地址.指令执行后,BX = 0003H.
(3) 先取变量STRING的偏移地址送寄存器SI,之后将SI的内容与DI 的内容相加并将结果送DI.指令执行后,SI = 0017H;DI = DI+0017H.
我现在不明白关于第二个问题中,为什么BX = 0003H,第三个问题中,为什么执行后SI =0017H,
DSEG SEGMENT
DATA1 DB 10H,20H,30H
DATA2 DW 10 DUP(?)
STRIGN DB '123'
DSEG ENDS
(1) MOV AL,DATA1
(2) MOV BX,OFFSET DATA2
(3) LEA SI,STRING
ADD DI,SI
答案给出的解释是这样的:
(1) 取变量DATA1的值.指令执行后是,AL = 10H.
(2) 变量DATA2的偏移地址.指令执行后,BX = 0003H.
(3) 先取变量STRING的偏移地址送寄存器SI,之后将SI的内容与DI 的内容相加并将结果送DI.指令执行后,SI = 0017H;DI = DI+0017H.
我现在不明白关于第二个问题中,为什么BX = 0003H,第三个问题中,为什么执行后SI =0017H,
![若程序的数据段定义如下,写出各指令语句独立执行后的结果:](/uploads/image/z/18137805-69-5.jpg?t=%E8%8B%A5%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%95%B0%E6%8D%AE%E6%AE%B5%E5%AE%9A%E4%B9%89%E5%A6%82%E4%B8%8B%2C%E5%86%99%E5%87%BA%E5%90%84%E6%8C%87%E4%BB%A4%E8%AF%AD%E5%8F%A5%E7%8B%AC%E7%AB%8B%E6%89%A7%E8%A1%8C%E5%90%8E%E7%9A%84%E7%BB%93%E6%9E%9C%EF%BC%9A)
data1,data2和string都在同一数据段,所以在内存中存放是从上往下存的
|10h|
|20h|
|30h|
20个空的内存单元(dw 10 dup()十个字)
31h (‘1’的assic码)
32h
33h
所以data2的偏移地址为0003h(从上往下第四个,10h的偏移地址为0000h)
string为0017h(即十进制的23)
再问: 这么说来,DATA1,DATA2,STRING之间的相对偏移地址都是有关联的啊,我还以为他们是完全独立的的呢。
|10h|
|20h|
|30h|
20个空的内存单元(dw 10 dup()十个字)
31h (‘1’的assic码)
32h
33h
所以data2的偏移地址为0003h(从上往下第四个,10h的偏移地址为0000h)
string为0017h(即十进制的23)
再问: 这么说来,DATA1,DATA2,STRING之间的相对偏移地址都是有关联的啊,我还以为他们是完全独立的的呢。
执行下面程序段,语句3的执行次数为
程序指令执行的过程?简述 .
下列程序段的执行后,变量a,k的值分别为 下列程序段的执行后,变量a,k的值分别为?要结果,
C语言题 求运行结果 下列程序段执行后的输出结果是( )
编写程序,定义数组存放如下数据{1,4,5,3,2,0},并对该数组按照由小到大顺序排序,输出排序后的结果
求解答access VBA循环语句一题:执行下面的程序段后,x的值为()
求汇编语言中的指令语句、伪指令语句和宏指令语句的定义!
执行下面的程序段后b的值为?
执行下面的程序段后,X的值为:
执行下列程序段后的输出结果是
执行下面程序段后,b的值是_______.
执行下列语句后的结果为().