欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

寫在前面

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

1.設(shè)計(jì)目的

1)體驗(yàn)并了解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,使之指向最后一個(gè)字符的下一個(gè)字符
  mov bh,0    ;將bh置零
  add bx,offset buff ;將buff的偏移地址加到bx中
  mov byte ptr [bx],'!' ;在字符串最后寫入'!'
  add bx,1    ;將bx加1,使之指向下一個(gè)字符
  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    ;移動(dòng)光標(biāo)
  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    ;移動(dòng)光標(biāo)
  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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

    這篇文章主要介紹了匯編實(shí)現(xiàn)冒泡排序的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 匯編語言中mov和lea指令的區(qū)別詳解

    匯編語言中mov和lea指令的區(qū)別詳解

    指令(instruction)是一種語句,它在程序匯編編譯時(shí)變得可執(zhí)行。本文給大家總結(jié)一下匯編語言中mov和lea指令的區(qū)別詳解,感興趣的朋友跟隨小編一起看看吧
    2020-01-01
  • 匯編程序成績排序的實(shí)現(xiàn)

    匯編程序成績排序的實(shí)現(xiàn)

    這篇文章主要介紹了匯編程序成績排序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 匯編語言入門教程阮一峰版

    匯編語言入門教程阮一峰版

    匯編語言是一種最低級(jí)、最古老、不具有移植性的編程語言,它能夠直接訪問計(jì)算機(jī)硬件,所以執(zhí)行效率極高,占用資源極少,一般用于嵌入式設(shè)備、驅(qū)動(dòng)程序、實(shí)時(shí)應(yīng)用、核心算法等
    2020-01-01
  • 匯編語言學(xué)習(xí)assume的作用詳解

    匯編語言學(xué)習(xí)assume的作用詳解

    這篇文章主要為大家介紹了匯編語言學(xué)習(xí)assume的作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-11-11
  • 匯編分析 Golang 循環(huán)(推薦)

    匯編分析 Golang 循環(huán)(推薦)

    循環(huán)是編程中很強(qiáng)大的一個(gè)概念,而且非常容易處理。這篇文章主要介紹了匯編分析 Golang 循環(huán),需要的朋友可以參考下
    2020-02-02
  • 匯編語言顯示功能實(shí)現(xiàn)教程詳解

    匯編語言顯示功能實(shí)現(xiàn)教程詳解

    這篇文章主要為大家介紹了匯編語言顯示功能的實(shí)現(xiàn)過程,文中通過問題實(shí)例分析來為大家進(jìn)行詳細(xì)的描述講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • 匯編語言中的各種寄存器介紹

    匯編語言中的各種寄存器介紹

    匯編語言(assembly language)是一種用于電子計(jì)算機(jī)、微處理器、微控制器或其他可編程器件的低級(jí)語言,亦稱為符號(hào)語言.這篇文章主要介紹了匯編語言中的各種寄存器介紹,需要的朋友可以參考下
    2020-01-01
  • 匯編語言系列之匯編實(shí)現(xiàn)簡單數(shù)學(xué)運(yùn)算

    匯編語言系列之匯編實(shí)現(xiàn)簡單數(shù)學(xué)運(yùn)算

    這篇文章主要介紹了匯編語言系列之匯編實(shí)現(xiàn)簡單數(shù)學(xué)運(yùn)算的思路詳解,本文給大家列出了兩種算術(shù)運(yùn)算的代碼,設(shè)計(jì)思路給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • 匯編語言AAD,DAA,DAS用法解析

    匯編語言AAD,DAA,DAS用法解析

    這篇文章主要介紹了匯編語言AAD,DAA,DAS用法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01

最新評(píng)論