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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

控制显卡

發(fā)布時(shí)間:2025/4/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 控制显卡 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 1 顯卡和顯存
      • 1.1 顯卡和顯存
      • 1.2 顯存的顯示模式
      • 1.3 8086中顯存的地址
    • 2 控制顯卡顯示內(nèi)容
      • 2.1 需求分析
      • 2.2 匯編代碼實(shí)現(xiàn)
      • 2.3 更精簡(jiǎn)的代碼實(shí)現(xiàn)

1 顯卡和顯存

1.1 顯卡和顯存

先搞清楚如下幾個(gè)概念:
顯卡: 為顯示器提供內(nèi)容。
顯示器: 將顯卡所提供的內(nèi)容呈現(xiàn)在屏幕上。

集成顯卡: 集成在主板上,和主板是一體的。
獨(dú)立顯卡: 獨(dú)立生產(chǎn)和銷(xiāo)售的一個(gè)獨(dú)立的部件。

顯示存儲(chǔ)器: 簡(jiǎn)稱(chēng)“顯存”,每個(gè)顯卡都有自己的存儲(chǔ)器。

1.2 顯存的顯示模式

圖形模式:

文本模式:

實(shí)際上還包含屬性字節(jié):

屬性字節(jié)的含義:

1.3 8086中顯存的地址


2 控制顯卡顯示內(nèi)容

2.1 需求分析

我們需要在屏幕上顯示一個(gè)標(biāo)號(hào)的地址,顯示內(nèi)容類(lèi)似:“l(fā)abel offset:256”。

顯示標(biāo)號(hào)的步驟如下:

2.2 匯編代碼實(shí)現(xiàn)

匯編代碼如下:

mov ax,0xb800 ;將b800傳送到ax寄存器中 mov es,ax ;將ax寄存器中的值,也就是b800傳送到附加段寄存器es中 ;為什么不寫(xiě)成 mov es,b800 ? ;因?yàn)閕ntel處理器不允許,它只允許:mov 段寄存器,通用寄存器/內(nèi)存單元 ;b800這個(gè)數(shù)是干什么用的?---顯存的段地址 ;----------------------------------------------------------------- mov byte [es:0x00],'L' ;"字符L的ASCII碼"存儲(chǔ)到顯存的第1個(gè)存儲(chǔ)單元中 ;mov byte [es:0x00],0100 1100b / 76 / 0x4C ;地址必須使用方括號(hào)括起來(lái) ;byte/word:明確的告訴編譯器這條指令的數(shù)據(jù)寬度 ;不需要修飾:Mov [00],AL / Mov AX,[00] mov byte [es:0x01],0x07 ;"字符L的屬性"存儲(chǔ)到顯存的第2個(gè)存儲(chǔ)單元中 ;屬性值07:黑底白字、無(wú)閃爍、無(wú)加亮mov byte [es:0x02],'a' mov byte [es:0x03],0x07mov byte [es:0x04],'b' mov byte [es:0x05],0x07mov byte [es:0x06],'e' mov byte [es:0x07],0x07mov byte [es:0x08],'l' mov byte [es:0x09],0x07mov byte [es:0x0a],' ' mov byte [es:0x0b],0x07mov byte [es:0x0c],"o" mov byte [es:0x0d],0x07mov byte [es:0x0e],'f' mov byte [es:0x0f],0x07mov byte [es:0x10],'f' mov byte [es:0x11],0x07mov byte [es:0x12],'s' mov byte [es:0x13],0x07mov byte [es:0x14],'e' mov byte [es:0x15],0x07mov byte [es:0x16],'t' mov byte [es:0x17],0x07mov byte [es:0x18],':' mov byte [es:0x19],0x07 ;----------------------------------------------------------------- mov ax,number ;"標(biāo)號(hào)"存儲(chǔ)到ax寄存器中,作為下面除法運(yùn)算的:被除數(shù)的低16位 ;編譯器在編譯的時(shí)候會(huì)將number替換為其所對(duì)應(yīng)的的匯編地址 mov dx,0 ;將0存儲(chǔ)到dx寄存器中,作為下面除法運(yùn)算的:被除數(shù)的高16位 mov bx,10 ;將10,也就是二進(jìn)制的1010存儲(chǔ)到bx寄存器中,作為下面除法運(yùn)算的:除數(shù) ;以上三條指令為第2個(gè)步驟的除法運(yùn)算做好了準(zhǔn)備工作 ;----------------------------------------------------------------- mov cx,cs ;將代碼段寄存器cs中的值,也就是0x000,傳送到cx寄存器中 mov ds,cx ;將cx寄存器中的值,也就是0x000傳送到數(shù)據(jù)段寄存器ds中 ;ds寄存器中存儲(chǔ)的是本程序在內(nèi)存中的段地址 ;----------------------------------------------------------------- div bx ;對(duì)應(yīng)第1次除法運(yùn)算 ;商存儲(chǔ)在ax寄存器中,作為下次運(yùn)算的被除數(shù) ;余數(shù),也就是標(biāo)號(hào)的個(gè)位上的值存儲(chǔ)在dx寄存器中 mov [0x7c00+number+0x00],dl ;將第1次除法運(yùn)算所得到的標(biāo)號(hào)個(gè)位上的值 ;存入了我們使用db所聲明的第1個(gè)存儲(chǔ)單元中 xor dx,dx ;異或指令:對(duì)兩個(gè)數(shù)進(jìn)行異或運(yùn)算,并將結(jié)果存儲(chǔ)到目的操作數(shù)中 ;異或運(yùn)算的特點(diǎn):相同為0,不同為1 ;這條指令的作用:將dx寄存器中的值清零 ;為第2次除法運(yùn)算做準(zhǔn)備 div bx ;對(duì)應(yīng)第2次除法運(yùn)算 mov [0x7c00+number+0x01],dl ;將第2次除法運(yùn)算所得到的標(biāo)號(hào)十位上的值 ;存入了我們使用db所聲明的第2個(gè)存儲(chǔ)單元中xor dx,dx ;為第3次除法運(yùn)算做準(zhǔn)備 div bx ;對(duì)應(yīng)第3次除法運(yùn)算 mov [0x7c00+number+0x02],dl ;將第3次除法運(yùn)算所得到的標(biāo)號(hào)百位上的值 ;存入了我們使用db所聲明的第3個(gè)存儲(chǔ)單元中 ;----------------------------------------------------------------- mov al,[0x7c00+number+0x02] ;將標(biāo)號(hào)百位上的數(shù)值傳送給al寄存器 add al,0x30 ;獲得標(biāo)號(hào)百位上數(shù)值的ASCII碼 mov [es:0x1a],al ;將標(biāo)號(hào)百位上數(shù)值的ASCII碼存入顯存 mov byte [es:0x1b],0x04 ;將0x04存入顯存中偏移地址為0x1b的存儲(chǔ)單元 ;字符屬性04:黑底、紅字、無(wú)閃爍、無(wú)加亮mov al,[0x7c00+number+0x01] ;將標(biāo)號(hào)十位上的數(shù)值傳送給al寄存器 add al,0x30 ;獲得標(biāo)號(hào)十位上數(shù)值的ASCII碼 mov [es:0x1c],al ;將標(biāo)號(hào)十位上數(shù)值的ASCII碼存入顯存 mov byte [es:0x1d],0x04mov al,[0x7c00+number+0x00] ;將標(biāo)號(hào)個(gè)位上的數(shù)值傳送給al寄存器 add al,0x30 ;獲得標(biāo)號(hào)個(gè)位上數(shù)值的ASCII碼 mov [es:0x1e],al ;將標(biāo)號(hào)個(gè)位上數(shù)值的ASCII碼存入顯存 mov byte [es:0x1f],0x04mov byte [es:0x20],'D' ;將字符D的ASCII碼存入顯存 mov byte [es:0x21],0x07 ;字符屬性07:黑底白字、無(wú)閃爍、無(wú)加亮 ;----------------------------------------------------------------- infi jmp near infi ;無(wú)限循環(huán) ;----------------------------------------------------------------- number db 0,0,0,0,0 ;標(biāo)號(hào):number = 匯編地址 = 0x0100 ;書(shū)寫(xiě)規(guī)范:以字母開(kāi)頭 ;db:聲明并初始化數(shù)據(jù) ;聲明數(shù)據(jù)的本質(zhì)就是:在內(nèi)存中占用一塊空間 ;初始化數(shù)據(jù)的本質(zhì)就是:給這個(gè)空間賦予一個(gè)值 ;在內(nèi)存中占用了5個(gè)字節(jié)的空間,這5個(gè)字節(jié)的值都是0 ;----------------------------------------------------------------- times 249 db 0 ;讓編譯器重復(fù)生成db 0 ---- 249次 db 0x55,0xaa ;硬盤(pán)主引導(dǎo)扇區(qū)的有效標(biāo)志

2.3 更精簡(jiǎn)的代碼實(shí)現(xiàn)

jmp near start;跳過(guò)下面的數(shù)據(jù)區(qū) mytext db 'L',0x07,'a',0x07,'b',0x07,'e',0x07,'l',0x07,' ',0x07,'o',0x07,\'f',0x07,'f',0x07,'s',0x07,'e',0x07,'t',0x07,':',0x07number db 0,0,0,0,0;-------------------------------------------------------------------- start: mov ax,0x07c0 mov ds,axmov ax,0xb800 mov es,ax;--------------------------------------------------------------------cld;作用:將方向標(biāo)志位清0 :正向 ;std指令:將方向標(biāo)志位置1:反向 mov si,mytext;所要傳送的數(shù)據(jù),它的偏移地址 mov di,0 ;所要傳送的位置,它的偏移地址 mov cx,(number-mytext)/2 ;所要傳送的次數(shù) rep movsw ;--------------------------------------------------------------------mov ax,number;AX:被除數(shù)的低16;目的:讓它參與運(yùn)算,以得到標(biāo)號(hào)各個(gè)數(shù)位上的值 mov bx,ax;目的,將來(lái)存儲(chǔ)計(jì)算所得到的標(biāo)號(hào)各個(gè)數(shù)位上的值mov cx,5 ;運(yùn)算的次數(shù) mov si,10 ;除數(shù) ;-------------------------------------------------------------------- digit: xor dx,dxdiv simov [bx],dl;[bx]:指向了第2條DB指令所聲明的第1個(gè)存儲(chǔ)單元 inc bx;將bx寄存器中的值+1 ;目的:下一個(gè)循環(huán)中,讓[bx]指向第2條DB指令所聲明的第2個(gè)存儲(chǔ)單元 ;Dec:將bx寄存器中的值-1 loop digit;循環(huán) ;--------------------------------------------------------------------mov bx,number;bx:基址寄存器 mov si,4 ;SI:源變址寄存器 show:mov al,[bx+si];1次循環(huán),將標(biāo)號(hào)萬(wàn)位上的值存儲(chǔ)到了al寄存器中;2次循環(huán),將標(biāo)號(hào)千位上的值存儲(chǔ)到了al寄存器中add al,0x30 ;獲取標(biāo)號(hào)各個(gè)數(shù)位值的ASCII碼 mov ah,0x04 ;0x04:字符屬性 mov [es:di],ax ;將標(biāo)號(hào)的ASCII碼及其屬性存入顯存中;1次循環(huán)-->萬(wàn)位 第2次循環(huán)-->千位 add di,2;為我們后面的循環(huán),存儲(chǔ)標(biāo)號(hào)數(shù)位上值的ASCII碼及其屬性做準(zhǔn)備 dec si;為我們后面的循環(huán),訪問(wèn)標(biāo)號(hào)各個(gè)數(shù)位的值做準(zhǔn)備 jns show ;jns:條件轉(zhuǎn)移指令 SF=0跳轉(zhuǎn) SF=1不跳轉(zhuǎn) ;--------------------------------------------------------------------mov word [es:di],0x0744;高字節(jié)07:字符屬性 低字節(jié)44:字符D的ASCII碼 jmp near $ ; == $ jmp near $;執(zhí)行效果 == infi jmp near infi ;$:當(dāng)做標(biāo)號(hào)來(lái)用 times 510-($-$$) db 0 ; == $ times 510-($-$$) db 0 ;$ = 當(dāng)前指令的匯編地址;$$ = 當(dāng)前段($$所在的段)的起始匯編地址 ;510-($-$$) = 為保證0x550xaa的位置,所需要添加的字節(jié)數(shù) db 0x55,0xaa

參考資料:

  • 深度學(xué)習(xí):C/C++、計(jì)算機(jī)體系
  • 總結(jié)

    以上是生活随笔為你收集整理的控制显卡的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

    主站蜘蛛池模板: 三级性生活片 | 亚洲精品aⅴ | 亚洲天堂欧美 | 欧美国产在线一区 | 色天天色综合 | 日韩女同一区二区三区 | 人妻夜夜爽天天爽三区麻豆av网站 | 91吃瓜今日吃瓜入口 | 新av在线| 波多野结衣办公室33分钟 | 高清日韩一区 | 干爹你真棒插曲免费 | 2019国产精品 | 欧美bbbbb性bbbbb视频 | 欧州一区二区三区 | 丁香久久 | 天天干夜夜玩 | 欧美日韩国产一区二区三区在线观看 | 日本黄页网站免费大全 | 成人导航网站 | 国产精品国产三级国产aⅴ9色 | 91干干| 欧美69久成人做爰视频 | 亚洲精品你懂的 | 欧洲国产精品 | 高清av一区二区三区 | 亚洲v欧美v另类v综合v日韩v | 蜜臀aⅴ国产精品久久久国产老师 | 大陆熟妇丰满多毛xxxⅹ | 蜜臀av无码精品人妻色欲 | 亚洲无人区码一码二码三码的含义 | 国产精品国产三级国产专区51 | 精品乱子伦一区二区三区 | 亚洲一区二区三区免费视频 | 久久白浆 | 九月婷婷丁香 | 亚洲精品一卡 | 国产精品亚洲一区二区 | 视频区小说区图片区 | 午夜影院体验区 | 奇米视频在线 | 日本一二三区在线视频 | 在线视频这里只有精品 | 哈利波特3在线观看免费版英文版 | 干美女少妇 | 国产粉嫩一区二区三区 | 精品无码一区二区三区电影桃花 | 四虎永久在线精品免费一区二区 | 亚洲成熟女性毛茸茸 | 制服中文字幕 | 极品尤物魔鬼身材啪啪仙踪林 | 中文字幕啪啪 | 成人免费网站在线观看 | 中文字幕亚洲不卡 | 国产精品免费视频一区二区三区 | 日日干日日摸 | 国产高潮失禁喷水爽到抽搐 | 草比视频在线观看 | 麻豆蜜桃wwww精品无码 | 在线视频免费播放 | 成人综合一区二区 | 91免费毛片 | 亚洲一区二区自拍偷拍 | 银娇在线观看 | 91午夜剧场 | 韩日视频一区 | 欧美日韩看片 | 国产一区二区h | 国产精品国产三级国产专播品爱网 | 亚洲专区区免费 | 成人欧美一级特黄 | 我的邻居在线观看 | 米奇av | 国语一区 | 日韩欧美亚洲成人 | 久久午夜精品人妻一区二区三区 | av免费一区 | 中文不卡av | 可以直接看的毛片 | 国产视频黄 | 国产老头户外野战xxxxx | 樱花动漫无圣光 | 白嫩情侣偷拍呻吟刺激 | 亚洲视频四区 | free性丰满69性欧美 | 中文字幕免费高清网站 | 四虎影库永久在线 | av在线综合网| 日韩精品视频在线观看网站 | 美女网站视频在线观看 | 最新日韩精品 | 亚洲字幕在线观看 | 久久久国产成人一区二区三区 | 丰满岳乱妇在线观看中字无码 | 百合sm惩罚室羞辱调教 | 国产视频你懂得 | 国产毛片不卡 | 欧美激情在线一区二区 | 午夜影院视频 |