0

我正在尝试编写一个 MASM615 汇编程序,其中部分程序在需要时切换两个字符串的地址。但是,我不知道该怎么做。基本上,我需要通过引用将两个字符串指针传递到一个新过程中,并且该过程会切换地址。

到目前为止,我有:

lea eax, str1
lea ebx, str2
push ebx
push eax
call compare

所以你看,地址被压入堆栈。在该过程中,我将它们从堆栈中弹出到相同的寄存器中(似乎有点毫无意义,但是哦)......然后呢?我觉得我需要以某种方式告诉str1指向中的地址ebx,并str2指向中的地址eax,但是如何?!

编辑:当前测试代码....

TITLE MASM Template                        (main.asm)

INCLUDE Irvine32.inc

.data
str1 db "Hello",0
str2 db "Hi there",0

.data?
pStr1 dd ?
pStr2 dd ?

.code
main PROC
mov [pStr1],OFFSET str1
mov [pStr2],OFFSET str2

mov edx, [pStr1]
call WriteString
main ENDP

END main
4

1 回答 1

0

看起来你想要这样的东西:

.data
str1 db "Hello",0
str2 db "Hi there",0

.data?
pStr dd ?

.code
mov [pStr],OFFSET str1
...
; if some condition is fulfilled, jump past this:
mov [pStr],OFFSET str2
...
mov edx,[pStr]
call WriteString
于 2013-07-18T19:59:29.990 回答