ASM lodsw to mov and inc

时间:2013-06-15 14:54:21

标签: assembly nasm mov

我在我的简单程序中加载了一些字符串

mov si, song

女巫负荷:

song:
%if 1
dw E0, C, A, E1, C, A, E2, B, A, E3, C, B
%endif
dw E0, C, A, E1, C, A, 0

E0 equ 14000 etc...

我用

加载元素
 lodsw; (one transition use three of them)

我需要用

来做
 mov and inc

我试过

mov ax, [si+dx]
inc dx

但这不想工作, 任何想法

2 个答案:

答案 0 :(得分:3)

lodsw等同于(如果省略标志)

mov ax, word [si]
add si, 2

我不确定您是否可以在dx等地址表达式中使用[si+dx](在16位模式下,只有sidibpbx是索引寄存器)。如果您不想更改si,请使用bx

(顺便说一句:你真的想写16位代码吗?它已经过时了.NASM完美地编译了32位代码。)

答案 1 :(得分:0)

由于你的表由“dw”(16位值)组成,你需要增加dx乘以2

mov ax, [si+dx]
inc dx
inc dx

或只是

mov ax, [si+dx]
add dx, 2