8086汇编语言显示带颜色的字符串程序学习 - 使用emu8086
生活随笔
收集整理的這篇文章主要介紹了
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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初步了解超图两种3D客户端 - iCli
- 下一篇: 初步了解超图官网提供的应用程序