在emu8086中学习汇编语言加减法程序
1 自帶示例
先看自帶示例;
執(zhí)行完 09 行如下;bl, al,如你所想;
執(zhí)行完 12 行,bl 被減去1,結(jié)果如你所想;
接下來按二進(jìn)制輸出結(jié)果,如下;
十進(jìn)制14的二進(jìn)制為1110,這就對了;
這段代碼是按二進(jìn)制輸出:? ??
mov cx, 8 print: mov ah, 2 ; print function.mov dl, '0'test bl, 10000000b ; test first bit.jz zeromov dl, '1' zero: int 21hshl bl, 1 loop print; print binary suffix: mov dl, 'b' int 21h最后等待按下一個鍵結(jié)束程序,使用 int 16h;
鍵盤I/O中斷調(diào)用有三個功能,功能號為0, 1, 2,功能號放在AH中。?
(1)0號功能調(diào)用 格式:MOV AH, 0
INT 16H
功能:從鍵盤讀入字符送AL寄存器。執(zhí)行時,等待鍵盤輸入,一旦輸入,字符的ASCII碼放入AL中。若AL=0,則AH為輸入的擴(kuò)展碼。?
?
2 把結(jié)果存在data區(qū)
看另一個程序;
data segmentnum1 db 3num2 db 5num3 db ? data ends code segment assume cs:code,ds:datastart:mov ax,datamov ds,axmov al,num1add al,num2mov num3,almov ax,4c00hint 21h code ends end start裝入后,運(yùn)行;提示錯誤;
原來;
用emulate8086匯編出現(xiàn)的問題:unterminated string;
emu8086不可以使用dup(?)來分配未初始化的單元…
把 num3 改為:num3 db 1;
最后結(jié)果覆蓋了就好了;
? ? 運(yùn)行起來;看一下;雙擊 data segment 一行;看到data區(qū)是在內(nèi)存 07100 處;最終結(jié)果將放在 07102 ;
? ? ? ? 運(yùn)行,看一下結(jié)果正確;07102 單元內(nèi)容變?yōu)?;
總結(jié)
以上是生活随笔為你收集整理的在emu8086中学习汇编语言加减法程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL内连接和左连接的区别 - 使用SQ
- 下一篇: WPF 3D和光照学习1