【问题标题】:Assembly x86 Variables汇编 x86 变量
【发布时间】:2014-04-13 00:33:10
【问题描述】:

这是一个非常简单直接的问题。

基本上,假设有 NodeA 和 NodeB。它们都包含 3 个双字。

  • NodeA的第一个元素初始化为null,第二个元素初始化为100,第三个元素初始化为NodeB的地址。

  • NodeB的第一个元素初始化为NodeA的地址,第二个元素初始化为200,第三个元素初始化为null

我确实尝试过编写代码,但我不确定我是否完全正确,尤其是“第三个元素应初始化为 NodeB 的地址”部分

这就是我得到的。

NodeA DWORD 0,100,NodeB
NodeB DWORD NodeA, 200, 0

这对吗?

【问题讨论】:

  • 哪个汇编程序?不同的汇编器有不同的语法。

标签: variables assembly x86


【解决方案1】:

由于您还没有提到您的汇编程序: 对于 NASM:

NodeA dd 0,100,NodeB
NodeB dd NodeA, 200, 0

对于 MASM:

NodeA dd 0,100, offset NodeB
NodeB dd offset NodeA, 200, 0

【讨论】:

    【解决方案2】:

    您的代码将不起作用。你必须做这样的事情..

    section .data
    NodeA dd 0,100,0
    NodeB dd 0,200,0
    
    section .text
    
    MOV place at NodeA+8, adress of NodeB
    MOV place at NodeB, adress of NodeA
    

    但我不知道该怎么做。对不起

    编辑:参见@gunner 的示例。您的代码有效

    【讨论】:

    • 哦,你是对的。我收到链接错误是因为我使用“dw”而不是“dd”thx
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 2011-02-08
    相关资源
    最近更新 更多