8086数据段MASM

时间:2017-06-09 01:38:06

标签: masm x86-16

鉴于此数据段:

.data
vara dw 0AB0h
varb db 'C'
varc db 'DEF',0
vard db 65
vare db '90','$'
  1. 如何在变量vard的数据段中找到偏移?
  2. 如何在执行所有这些指令后找到写入标准输出设备的字节数:

    mov dx,offset varc

    mov ah,9

2 个答案:

答案 0 :(得分:0)

  

如何在变量vard的数据段中找到偏移?

计算 vard 变量之前的所有数据。

你有1个字,1个字符,3个字符和1个字节。

<强> 7

  

如何在执行完所有这些指令后找到写入标准输出设备的字节数:

再次计算所有数据,直到不包括下一个 $ 符号。

你有3个字符,1个字节,1个字节和2个字符。

<强> 7

答案 1 :(得分:0)

(1)vard数据段的偏移量为:偏移值。它的值已经解决,直到链接时才能知道。

(2)假设你正在表演(虽然我在你的问题中看不到21h):

mov dx, offset varc
mov ah,9
int 21h

您将输出七个字节。涉及的所有字段都是字节,因此不会混合对齐填充,并且汇编器/链接器不会对变量重新排序,即使它们是独立的(即未嵌入到结构中)。