我已經找了幾個小時了,我在我的代碼中找不到錯誤。該程式似乎在“opadd”標簽處退出。我在 Linux 上使用 x86_64,使用 AT&T 語法。
該程式將一串字符作為輸入,例如,“2 3 add 4 mul”,然后,對于這個特定的例子,應該執行以下操作:
- 將 2 添加到堆疊中
- 將 3 添加到堆疊中
- 計算 2 和 3 的總和,然后將 5 添加到堆疊中
- 將 5 和 4 相乘并將 20 添加到堆疊中,然后列印 20。
.data
formatPrintf: .asciz "%d"
sir: .space 1000
delim: .asciz " "
formatScanf: .asciz "00[^\n]"
cuvant: .space 100
primulNumar: .space 4
atoiCuvant: .long 0
x: .space 4
y: .space 4
eval: .long 0
op: .space 4
add: .asciz "add"
sub: .asciz "sub"
mul: .asciz "mul"
div: .asciz "div"
.text
.global main
main:
pushl $sir
pushl $formatScanf
call scanf
popl
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/369160.html
下一篇:無法識別標簽
