使用emu8086学习汇编 int 21h 指令
生活随笔
收集整理的這篇文章主要介紹了
使用emu8086学习汇编 int 21h 指令
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
INT 21H是DOS的中斷調用,根據AH的值執行不同的功能;
在emu8086看一下;
單獨輸入一條指令;
進入仿真;
看一下程序代碼,也就是用戶程序,是存儲在內存地址的01000、01001;
Run一下;運行情況如下圖;
這里是內存的F4200到F4204;這里是系統內存區;前面是用戶內存區;BIOS DI,沒有這條匯編指令;在emu8086可能指示從這里開始存放的是BIOS中斷程序;就是執行int 21h會轉到系統內存區;INT 21h后面是IRET指令;匯編指令中RET是返回,IRET則是中斷返回;
執行IRET將從中斷功能程序處,返回到用戶代碼;
來看一個實際的功能;01號子功能,鍵盤輸入和回顯;執行下面兩條,將回顯鍵盤輸入字符,并把輸入字符存入AL;
進入仿真;用戶代碼存到01003為止;
單步;執行到 BIOS DI 這句;再點單步執行,則出現下圖;彈出仿真屏幕,并等待用戶鍵入;
鍵入f,回顯在仿真屏幕;f存入AL;然后進到IRET指令;
前面是在仿真內存的F4204處;執行IRET以后,返回到用戶代碼的下一條;也就是01004處;只輸入了兩條指令,01004是空的;
?
總結
以上是生活随笔為你收集整理的使用emu8086学习汇编 int 21h 指令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC CListCtrl控件基本使用图
- 下一篇: 初次使用VS附加到进程功能