[英]Error when running simple program in assembly
我在匯編中編寫了一個簡單的程序,我嘗試使用TASM(Turbo)和TLINK運行它。 運行可執行文件后,我收到此錯誤:
TITLE 1st Program
.286
.model small
.data
val1 db 0
.code
main PROC
mov bl, 2Bh
mov val1, bl
mov bl, 2Ah ;I suspect this is the line that causes the problem
mov ah, 02 ;calls interrupt to display val1
mov dl, val1
int 21h
mov ah, 04Ch ;calls interrupt to terminat program
mov al, 00
int 21h
main ENDP
end main
如果我移除只移動2ah到BL的線,它的工作完全正常。 我嘗試更改添加到BL的值,但我仍然收到錯誤消息。 我只想了解導致錯誤的原因。
謝謝!
稍后編輯:我設法通過添加.stack 100h來解決錯誤。 任何人都可以解釋究竟發生了什么?
很可能沒有為應用程序的堆棧保留內存,或者它的數量太少, int 21h
或硬件中斷處理程序導致堆棧溢出和導致數據執行或代碼損壞的數據/代碼損壞。
mov bl, 2Ah
本身不可能導致問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.