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