我正在使用dosbox,這是一項任務。我必須使用堆棧來反轉字符串。我的想法是將字符串一個字符一次推入堆棧,然後逐個彈出到RevString中。我無法弄清楚如何實際做到這一點。這是我到目前爲止。使用堆棧反轉字符串
.MODEL SMALL
.STACK 100h
.DATA
String DB "NAJAFI", 13, 10, "$"
RevString DB 6 DUP(?), '.', 13, 10, "$"
.CODE
Main PROC
;; Set up ds register to point to the data
mov ax, @data
mov ds, ax
;; printing a string in dos
mov dx, OFFSET String
mov ah, 9h
int 21h
;; reverse the string by using the stack
mov ax, WORD PTR String
push ax
pop ax
;mov RevString, ax
;; print the reverse string in dos
mov dx, RevString
mov ah, 9h
int 21h
;; DOS return
mov al, 0
mov ah, 4ch
int 21h
Main ENDP
END Main
提示:你需要一個循環。 –
我很好,手動選擇索引,因此我不需要一個循環正確?如果是這樣的話,實際推送的語法是什麼?將字母「N」寫入堆棧? –
你需要一個循環。如果你以任何其他方式進行,你會將你的代碼綁定到特定的字符串長度,並得到一個不好的成績。 :) –