1
我是新的汇编语言,我遇到了反转字符串的问题。反转装配中的字符串(TASM)
例如:
原始字符串:“ABCD”
反转之后:“DCBA”
我也希望把反向串入我使用了相同的变量名,而不是使用新的一个。 我想过使用堆栈和这里的,我写了一个代码,但我想不通的地方是我的错误:
IDEAL
MODEL small
STACK 1000h
DATASEG
first db 'ABCD', 0
CODESEG
start:
mov ax, @data
mov ds, ax
mov si, 0
mov di, 0
loop_start:
mov ax, [first+si]
inc si
test ax, ax
jz done1ax
push ax
jmp loop_start
done1ax:
pop ax
mov [first+di], ax
inc di
cmp di, si
JL done1ax
mov dl, 10
mov ah, 2
int 21h
ret
END start
字符串中的字符每个是一个字节。 'ax'寄存器是一个字寄存器(两个字节)。 – Michael
没错,但我在教程中看过,我不能将字符串定义为'DW',另一方面,我不能使用'DB'变量来使用堆栈。那我该如何解决这个问题? – gil
'push'和'pop'' ax'很好,但其他操作如'mov'和'test'需要使用像al'这样的8位寄存器。 – Michael