簡體   English   中英

在程序集中運行簡單程序時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM