最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

匯編語言程序設(shè)計之根據(jù)輸入改變屏幕顏色的代碼

 更新時間:2020年03月12日 13:28:08   作者:ShadowCK  
這篇文章主要介紹了匯編語言中的根據(jù)輸入改變屏幕顏色的代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

寫在前面

該程序?qū)崿F(xiàn)了“根據(jù)輸入改變屏幕顏色”。其實這個程序本身沒什么意思,純粹只是將學習到的知識融合在了一起而已。程序本身過于繁瑣了,寫得并不是很好。以及這是我匯編實驗課程的作業(yè),如果大家有類似作業(yè)的話希望不要過度借鑒,本程序僅供參考和學習。

1.設(shè)計目的

1)體驗并了解DOS界面下色彩顯示;

2)了解并掌握INT10功能BIOS調(diào)用顯示屏幕控制。

2.程序功能

①創(chuàng)建小屏;

②提示輸入姓名;

③詢問背景顏色并修改背景色;

④詢問字體顏色并修改字體色;

⑤詢問是否閃爍并修改閃爍;

⑥輸出姓名及問候語。

3.源代碼

stack segment stack
 db 64 dup (?)
stack ends
data segment
 buff db 50,?,50 dup(?)
 nam0 db 'What is your name ?$'
 bkc0 db 'What is your background color ?$'
 bkc1 db '->(input RGB:0-7):$'
 fc0 db 'What is your font color ?$'
 fc1 db '->(input RGB:0-7):$'
 tw0 db 'Do you like twinkle ?$'
 tw1 db '->(like:1 dislike:0): $'
 hel0 db 'Hello!$'
 hel1 db 'Welcome to MASM!$'
 arro db '->$'
data ends
code segment
assume cs:code,ds:data,ss:stack
start: mov ax,data
  mov ds,ax    ;使ds指向data數(shù)據(jù)段
  mov ah,6    ;初始化屏幕
  mov al,0
  mov ch,0
  mov cl,0
  mov dh,24
  mov dl,79
  mov bh,7
  int 10h
  mov bh,00001111b  ;黑底白字
  call scroll
  call cursor
  mov dx,offset nam0
  mov ah,9
  int 21h    ;輸出字符串,提示輸入姓名
  mov bh,10001111b
  call scroll
  call cursor
  mov dx,offset buff
  mov ah,10
  int 21h    ;輸入字符串至緩沖區(qū)
  call scroll
  mov bh,00001111b  ;閃爍黑底白字
  call scroll
  call cursor
  mov dx,offset bkc0
  mov ah,9
  int 21h    ;輸出字符串,詢問背景色
  call scroll
  call cursor
  mov dx,offset bkc1
  mov ah,9
  int 21h    ;輸出字符串,提示輸入格式
  mov bh,10001111b
  call scroll
  call cursor
  mov dx,offset arro
  mov ah,9
  int 21h    ;輸出箭頭
  mov ah,1
  int 21h    ;輸入背景色
  sub al,30h
  call scroll
  mov cl,4
  shl al,cl
  mov bh,00001000b
  add bh,al    ;將bh的4-6位改為輸入的背景色
  call scroll
  call cursor
  mov dx,offset fc0
  mov ah,9
  int 21h    ;輸出字符串,詢問字體色
  call scroll
  call cursor
  mov dx,offset fc1
  mov ah,9
  int 21h    ;輸出字符串,提示輸入格式
  or bh,10000000b
  call scroll
  call cursor
  mov dx,offset arro
  mov ah,9
  int 21h    ;輸出箭頭
  mov ah,1
  int 21h    ;輸入字體色
  sub al,30h
  call scroll
  add bh,al    ;將bh的0-2位改為輸入的字體色
  and bh,01111111b
  call scroll
  call cursor
  mov dx,offset tw0
  mov ah,9
  int 21h    ;輸出字符串,詢問是否閃爍
  call scroll
  call cursor
  mov dx,offset tw1
  mov ah,9
  int 21h    ;輸出字符串,提示輸入格式
  or bh,10000000b
  call scroll
  call cursor
  mov dx,offset arro
  mov ah,9
  int 21h    ;輸出箭頭
  mov ah,1
  int 21h    ;輸入閃爍
  sub al,30h
  call scroll
  cmp al,1
  je twin
  and bh,01111111b  ;若閃爍,將bh的7位改為1
  jmp a
twin: or bh,10000000b  ;若不閃爍,將bh的7位改為0
a:  call scroll
  call cursormid
  mov dx,offset hel0
  mov ah,9
  int 21h    ;輸出問候
  push bx
  call scroll
  call cursormid
  mov bl,buff+1   ;將輸入的字符數(shù)存至bl
  add bl,2    ;將bl加2,使之指向最后一個字符的下一個字符
  mov bh,0    ;將bh置零
  add bx,offset buff ;將buff的偏移地址加到bx中
  mov byte ptr [bx],'!' ;在字符串最后寫入'!'
  add bx,1    ;將bx加1,使之指向下一個字符
  mov byte ptr [bx],'$' ;在字符串最后寫入'$'
  mov dx,offset buff+2
  mov ah,9
  int 21h    ;輸出字符串(即所存姓名、'!')
  pop bx
  call scroll
  call cursormid
  mov dx,offset hel1
  mov ah,9
  int 21h    ;輸出字符串,問候    
  mov ah,4ch
  int 21h    ;結(jié)束程序
scroll proc near
  push ax
  push bx
  push cx
  push dx
  mov ah,6
  mov al,1
  mov ch,8
  mov cl,30
  mov dh,16
  mov dl,60
  int 10h    ;下滾一行
  pop dx
  pop cx
  pop bx
  pop ax
  ret
scroll endp
cursor proc near
  push ax
  push bx
  push dx
  mov ah,2
  mov dh,16
  mov dl,30    ;移動光標
  mov bh,0
  int 10h
  pop dx
  pop bx
  pop ax
  ret
cursor endp
cursormid proc near
  push ax
  push bx
  push dx
  mov ah,2
  mov dh,16
  mov dl,38    ;移動光標
  mov bh,0
  int 10h
  pop dx
  pop bx
  pop ax
  ret
cursormid endp
code ends
end start

4.流程圖

 

總結(jié)

到此這篇關(guān)于匯編語言中的根據(jù)輸入改變屏幕顏色的代碼的文章就介紹到這了,更多相關(guān)匯編語言改變屏幕顏色內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 匯編語言loop命令的具體使用

    匯編語言loop命令的具體使用

    LOOP指令是根據(jù)ECX計數(shù)器循環(huán),將語句塊重復(fù)執(zhí)行特定次數(shù),本文主要介紹了匯編語言loop命令的具體使用,感興趣的可以了解一下
    2024-03-03
  • 匯編語言功能實現(xiàn)數(shù)據(jù)復(fù)制實例詳解

    匯編語言功能實現(xiàn)數(shù)據(jù)復(fù)制實例詳解

    這篇文章主要為大家介紹了匯編語言功能實現(xiàn)數(shù)據(jù)復(fù)制的實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • 匯編語言mov指令及基本用法

    匯編語言mov指令及基本用法

    在匯編語言中,MOV指令是數(shù)據(jù)傳送指令,也是最基本的編程指令,用于將一個數(shù)據(jù)從源地址傳送到目標地址(寄存器間的數(shù)據(jù)傳送本質(zhì)上也是一樣的)。這篇文章給大家介紹匯編語言mov指令及基本用法,感興趣的朋友一起看看吧
    2020-01-01
  • 匯編指令-狀態(tài)寄存器、cmp、test、jz等指令詳細說明

    匯編指令-狀態(tài)寄存器、cmp、test、jz等指令詳細說明

    這篇文章主要介紹了匯編指令-狀態(tài)寄存器、cmp、test、jz等指令詳細說明,需要的朋友可以參考下
    2020-01-01
  • 匯編實現(xiàn)直接插入排序的方法示例

    匯編實現(xiàn)直接插入排序的方法示例

    這篇文章主要介紹了匯編實現(xiàn)直接插入排序的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • UEFI開發(fā)基礎(chǔ)匯編代碼的使用

    UEFI開發(fā)基礎(chǔ)匯編代碼的使用

    這篇文章主要為大家介紹了UEFI開發(fā)基礎(chǔ)匯編代碼使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 匯編實現(xiàn)冒泡排序的方法示例

    匯編實現(xiàn)冒泡排序的方法示例

    這篇文章主要介紹了匯編實現(xiàn)冒泡排序的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • 用匯編語言實現(xiàn)從1加到100的方法(1+2+...+100)

    用匯編語言實現(xiàn)從1加到100的方法(1+2+...+100)

    這篇文章主要介紹了用匯編語言實現(xiàn)從1加到100的方法(1+2+...+100),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 匯編語言指令集學習CMPXCHG比較并交換操作指令詳解

    匯編語言指令集學習CMPXCHG比較并交換操作指令詳解

    這篇文章主要為大家介紹了匯編語言指令集學習CMPXCHG比較并交換操作的指令詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • 匯編基礎(chǔ)程序編寫教程示例

    匯編基礎(chǔ)程序編寫教程示例

    這篇文章主要為大家介紹了匯編基礎(chǔ),程序編寫教程示例,文中附含詳細的圖文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11

最新評論

乌审旗| 元朗区| 勐海县| 阿拉尔市| 仲巴县| 安溪县| 恩平市| 瓦房店市| 遂昌县| 蒙阴县| 正蓝旗| 池州市| 浙江省| 金山区| 静乐县| 花莲县| 普兰店市| 宁德市| 屯留县| 北安市| 天气| 墨竹工卡县| 漯河市| 胶州市| 广昌县| 南昌县| 伊通| 金川县| 响水县| 房产| 莫力| 禹州市| 吴堡县| 屯门区| 磐安县| 鄂伦春自治旗| 什邡市| 新竹县| 扬州市| 修武县| 永仁县|