【问题标题】:what is the absolute address for data segment variable in assembly?汇编中数据段变量的绝对地址是什么?
【发布时间】:2020-10-30 07:44:29
【问题描述】:
.data

len dw 10
msg db "1234567890"

.code
....

段地址 DS = 0ACA CS =0AC7

字符串msg的绝对地址是什么?

我的理解是 msg 的有效地址是 21 in dec 即 15H,然后我执行 DS:0015 即 ACB5 但它不工作..

可用的答案是:

0ACA2

0ACC0

0ACC

0ACA0

【问题讨论】:

  • 老兄,别再在这里发布你的作业问题了。没有人会为你做功课。

标签: assembly x86-16 real-mode


【解决方案1】:

鉴于您当前的假设,您正在对线性地址进行合理的计算。

(0ACAh << 4) + 0015h 确实会产生线性地址 0000ACB5h。

但是,为什么你会明白 msg 标签在偏移量 21 (15h)?

假设DS段寄存器指向.data部分并看到下一个代码sn-p

.data
len dw 10
msg db "1234567890"

len 变量占据 2 个字节,因为这是 dw (DefineWord) 所做的,msg 的偏移量将是 2.

如果您重新计算,您会在提供的列表中看到正确答案...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    • 2017-07-25
    相关资源
    最近更新 更多