日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图解在8086模拟器中运行汇编helloworld程序

發(fā)布時間:2025/4/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图解在8086模拟器中运行汇编helloworld程序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

匯編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


啟動仿真;程序起始地址是0700:0100;



設置顯示模式;

AH=00H
AH=00/INT 10H 是用來設定顯示模式的服務程序,AL 寄存器表示欲設定的模式:

AL 文字/圖形 分辨率 顏色
00 文字 40*252
01 文字 40*2516
02 文字 80*252
03 文字 80*2516
04 圖形 320*2002
05 圖形 320*2004
06 圖形 640*2002


此處設置為文字、80*25、16色;

看下圖;執(zhí)行int 10h指令時跳到int 10h的中斷服務程序處,F4190、F4191;執(zhí)行完后返回;



看上圖,同時棧會發(fā)生變化;因為;

CPU執(zhí)行int n指令,相當于引發(fā)一個n號中斷的中斷過程,執(zhí)行過程如下:

1)取中斷類型碼n;

2)標志寄存器入棧,IF=0,TF=0;

3)CS、IP入棧

4)(IP)=(n*4),(CS)=(n*4+2)

從此處轉(zhuǎn)去執(zhí)行n號中斷的中斷處理程序。

? ? 有標志寄存器,cs,ip的入棧動作;


cancel blinking and enable all 16 colors;


設置數(shù)據(jù)段為b800h;



把048h放入b.[00002h],此處是直接寫顯存;然后H顯示出來;


顯存
從 0B800H:0000H 開始,就是顯示器的存儲空間,這就是顯存。
在 DOS 流行的時候,屏幕的顯示,基本上都是文本模式。
在文本模式下,屏幕上共有 25 行、80 列,可顯示 2000 個字符。
當對 0B800H:0000H 開始的內(nèi)存空間寫入數(shù)據(jù)的時候,字符將立即在屏幕上顯示出來,這就是直接寫屏。
要在屏幕上顯示一個字符,需要連續(xù)寫入兩個字節(jié),第一字節(jié)就是字符的 ASCII 碼,第二字節(jié)是顯示屬性字節(jié)。
那么,要想寫入一滿屏的字符,就需要連續(xù)寫入 4000 字節(jié)。這個數(shù)字就是“顯存”的大小。



后面的類同;




顯示完畢;

顯存似乎沒有仿真出來;看不到顯存中的內(nèi)容;


int 16h,鍵盤中斷;

功能號:00H和10H
功能:從鍵盤讀入字符?
入口參數(shù):AH
? ? ? ? ? =00H—讀鍵盤?
? ? ? ? ? =10H—讀擴展鍵盤,可根據(jù)0000:0496H單元的內(nèi)容判斷:
? ? ? ? ? ? 擴展鍵盤是否有效?


等待輸入字符,然后結(jié)束程序;


總結(jié)

以上是生活随笔為你收集整理的图解在8086模拟器中运行汇编helloworld程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。