图解在8086模拟器中运行汇编helloworld程序
匯編helloworld代碼:
org 100h; set video mode mov ax, 3 ; text mode 80x25, 16 colors, 8 pages (ah=0, al=3) int 10h ; do it!; cancel blinking and enable all 16 colors: mov ax, 1003h mov bx, 0 int 10h; set segment register: mov ax, 0b800h mov ds, ax; print "hello world" ; first byte is ascii code, second byte is color code.mov [02h], 'H' mov [04h], 'e' mov [06h], 'l' mov [08h], 'l' mov [0ah], 'o' mov [0ch], ',' mov [0eh], 'W' mov [10h], 'o' mov [12h], 'r' mov [14h], 'l' mov [16h], 'd' mov [18h], '!' ; wait for any key press: mov ah, 0 int 16hret
啟動(dòng)仿真;程序起始地址是0700:0100;
設(shè)置顯示模式;
AH=00H
AH=00/INT 10H 是用來(lái)設(shè)定顯示模式的服務(wù)程序,AL 寄存器表示欲設(shè)定的模式:
AL 文字/圖形 分辨率 顏色
00 文字 40*252
01 文字 40*2516
02 文字 80*252
03 文字 80*2516
04 圖形 320*2002
05 圖形 320*2004
06 圖形 640*2002
此處設(shè)置為文字、80*25、16色;
看下圖;執(zhí)行int 10h指令時(shí)跳到int 10h的中斷服務(wù)程序處,F4190、F4191;執(zhí)行完后返回;
看上圖,同時(shí)棧會(huì)發(fā)生變化;因?yàn)?#xff1b;
CPU執(zhí)行int n指令,相當(dāng)于引發(fā)一個(gè)n號(hào)中斷的中斷過(guò)程,執(zhí)行過(guò)程如下:
1)取中斷類(lèi)型碼n;
2)標(biāo)志寄存器入棧,IF=0,TF=0;
3)CS、IP入棧
4)(IP)=(n*4),(CS)=(n*4+2)
從此處轉(zhuǎn)去執(zhí)行n號(hào)中斷的中斷處理程序。
? ? 有標(biāo)志寄存器,cs,ip的入棧動(dòng)作;
cancel blinking and enable all 16 colors;
設(shè)置數(shù)據(jù)段為b800h;
把048h放入b.[00002h],此處是直接寫(xiě)顯存;然后H顯示出來(lái);
顯存
從 0B800H:0000H 開(kāi)始,就是顯示器的存儲(chǔ)空間,這就是顯存。
在 DOS 流行的時(shí)候,屏幕的顯示,基本上都是文本模式。
在文本模式下,屏幕上共有 25 行、80 列,可顯示 2000 個(gè)字符。
當(dāng)對(duì) 0B800H:0000H 開(kāi)始的內(nèi)存空間寫(xiě)入數(shù)據(jù)的時(shí)候,字符將立即在屏幕上顯示出來(lái),這就是直接寫(xiě)屏。
要在屏幕上顯示一個(gè)字符,需要連續(xù)寫(xiě)入兩個(gè)字節(jié),第一字節(jié)就是字符的 ASCII 碼,第二字節(jié)是顯示屬性字節(jié)。
那么,要想寫(xiě)入一滿(mǎn)屏的字符,就需要連續(xù)寫(xiě)入 4000 字節(jié)。這個(gè)數(shù)字就是“顯存”的大小。
后面的類(lèi)同;
顯示完畢;
顯存似乎沒(méi)有仿真出來(lái);看不到顯存中的內(nèi)容;
int 16h,鍵盤(pán)中斷;
功能號(hào):00H和10H
功能:從鍵盤(pán)讀入字符?
入口參數(shù):AH
? ? ? ? ? =00H—讀鍵盤(pán)?
? ? ? ? ? =10H—讀擴(kuò)展鍵盤(pán),可根據(jù)0000:0496H單元的內(nèi)容判斷:
? ? ? ? ? ? 擴(kuò)展鍵盤(pán)是否有效?
等待輸入字符,然后結(jié)束程序;
總結(jié)
以上是生活随笔為你收集整理的图解在8086模拟器中运行汇编helloworld程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 汇编排序算法代码总结
- 下一篇: 图解用tree命令研究Windows目录