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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

8086汇编语言显示带颜色的字符串程序学习 - 使用emu8086

發布時間:2025/4/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 8086汇编语言显示带颜色的字符串程序学习 - 使用emu8086 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
DATAS SEGMENTdb 'AaabbbcccH' ;要顯示的字符串,10 DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXmov sp,128mov ax,0b872h ;算出屏幕第12行中間的顯存的段起始位置放入ax中mov es,ax ;此時es為屏幕第12行中間的顯存的段起始位置mov si,0 ;si用來索引代碼列的字符mov di,0 ;di用來定位目標列mov cx,10 ;字符串長度s1:mov al,ds:[si] ;源字符mov es:[di],al ;顯示目標字符體mov al,75h ;顏色mov es:[di+1],al;設置目標字符顏色inc si ;db 一個字符一個字節add di,2 ;顯存 一個字符兩個字節:偶字符體,奇字符顏色loop s1MOV AH,4CHINT 21HCODES ENDSEND START

在emu8086中運行如下;

此程序并未調用匯編 int 10h功能;INT 10H 是由 BIOS 對屏幕及顯示器所提供的服務程序;

也未調用?int 21h,ah = 02 子功能,其功能是顯示輸出,要輸出的字符放在dl寄存器中;見此;
https://blog.csdn.net/bcbobo21cn/article/details/108892802

使用的方法是直接寫顯示緩存;把字符直接寫到顯示緩存位置,就在屏幕上輸出了;

在內存地址空間中,B8000H - BFFFFH 共32kB的空間,為80*25彩色字符模式的顯示緩沖區;
? ? 顯示緩沖區分為8頁;每頁4KB,4000B;一般情況下,顯示第0頁內容,B8000H - B8F9FH的4000個字節;

直接寫顯示緩存我記得是DOS時代重要的技術;目前Win系統還存在否不了解;原理應該是存在的;

原程序見此;
https://blog.csdn.net/larger5/article/details/80617601

?

在仿真內存頂部輸入 b872:0000;如下;看到被顯示字符被寫入此處;

?

總結

以上是生活随笔為你收集整理的8086汇编语言显示带颜色的字符串程序学习 - 使用emu8086的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。