關於彙編int內中斷的問題,彙編 int中斷的問題

2022-05-26 19:00:23 字數 2228 閱讀 9618

1樓:風絮之殤

內中斷是隻能使用立即數的,例如int 21h,int 16h等,如果要呼叫int ax這種指令的話是不行的,但是我們可以其他辦法實現,根據ax的值找到對應中斷在中斷向量表中的位置0:[ax*4],0:[ax*4+2],取得相應中斷的入口段地址和偏移地址,再利用call指令呼叫就可以了,效果是完全一樣的,希望對你有點幫助 ~

2樓:

我不清楚你要這樣做的意義,但可以用如下方法實現:(.com格式顯示hello)

code segment

main proc far

assume cs:code,ds:codeorg 100h

start:

mov ah,9

mov dx,offset mess1

mov al,21h

mov int_num,al

db 0cdh

int_num db 0

int 20h

mess1 db 'hello!',0dh,0ah,24hmain endp

code ends

end start

3樓:做而論道

根據中斷型別碼,把中斷向量的四個位元組找出來,用call指令來呼叫,即可。

樓主查查關於修改中斷向量的部分:

把四個位元組的老中斷向量儲存起來,寫入新的向量,這就完成的中斷向量的修改。

以後,在執行新的中斷程式期間,還完全可以呼叫老的中斷程式,這就是用call指令,呼叫儲存的老中斷向量來完成的。

以前寫過這種程式,一時找不到,但是思路就是這樣的。

4樓:匿名使用者

內中斷只允許使用立即數.

組合語言愛好者為您回答,選我哦

彙編 int中斷的問題

5樓:風若遠去何人留

不是的。

中斷程式執行 一樣需要記憶體。

中斷你可以理解為:

cpu本來好好的做自己的事情, 來了一個外部命令(中斷)這時不管之前在做什麼 都會被暫停下來,然後去做新的任務(執行中斷函式。)

打一個不是太恰當的例子, 你在看書, 突然想上廁所,於是先去上廁所,回來繼續看書。 這個讓你上廁所的感覺,就是一箇中斷。

關於組合語言中斷部分的問題

6樓:匿名使用者

要想弄明白這個問題,還是先去看一下8259a的工作原理吧!

再就是in al,dx指令中的dx是指埠地址,表示從該埠中讀一個資料到al,而並不是把dx送al

是關於組合語言的軟中斷執行問題。

7樓:天池血崩

被零除既非軟中斷,也非硬中斷,所以實際上它是一個異常。與軟、硬中斷不同,異常恢復時執行的**為異常發生的**,而非異常之後的**。

因此若儲存了dx,則此中斷處理完成後依然要執行div 0的指令,因此不斷產生零除錯誤,也就是不斷重複產生這一中斷,所以不能儲存dx。

8樓:匿名使用者

問題3:此處,為什麼要開中斷?

你的中斷程式裡面要接收新的中斷,如鍵盤輸入,所以要開問題4:以上這6條指令是做什麼的?

鍵盤按c或者q退出

關於微控制器中斷問題(彙編程式)

9樓:

int_0: mov p0,#11111111bacall t05s

mov p0,#11111110b

acall t05s

mov p0,#11111111b

acall t05s

mov p0,#11111110b

acall t05s

mov p0,#11111111b

clr a

push acc

push acc

reti

這裡你用了兩個push,然後沒有pop,每次經過這裡sp都會增加2,那麼reti就無法根據sp指向的ram地址儲存的值返回到原來的位置了。一般push是在一進入中斷時將acc和psw壓棧保護現場,reti之前出棧還原現場的,你在reti之前用兩個push是完全不需要的。

10樓:

主程式中也有讓led閃爍的,可能中斷返回後幹好與主程式的地方相一致。還有就是有入棧沒有出棧,有可能也有影響,例外,入棧一般在進入中斷後就做,中斷返回前出棧。

關於彙編的

ax dx,它們是cpu中的暫存器。8086cpu中,共有14個暫存器,功能特點 使用方法,都必須背誦下來。比如你到外地上大學,校園裡面,幾號樓,都是幹什麼的,你都必須記憶下來。背下來了,才能程式設計,才會利用它們,完成自己的任務。如果電子技術基礎較好的話,理解這些暫存器,是輕車熟路的。會c語言,對...

組合語言資料段問題,組合語言中定義的資料段的問題

如果1000h只是偏移地址,段地址由系統指定,可用下面方法 data segment org 1000h 用來指定下面資料或指令的偏移地址從該值開始 db 38h,4ah,2bh,80h,64h,0a7h,0bbh,9ch,83h,0f6h data ends 如果1000h是實體地址,則要先把它轉...

關於養老保險年限中斷的問題,關於養老保險中斷的問題

這個需要去您交社保所在地的社保所 社保局去調檔案,將山東濰坊,深圳,山東濟南,所有的社保都做小孩,調出檔案,列印社保繳費憑證,然後都弄到您老家,這樣就可以把您之前所有的累計到一起了 各地的社保賬戶都可以用你的身份證號碼檢視,如果你各地社保都辦理了社保卡,可以直接在實名認證的支付寶 城市服務檢視各個城...