x86匯編實(shí)現(xiàn)英文打字練習(xí)軟件

目的:

編寫英文打字練習(xí)軟件,綜合復(fù)習(xí)字符輸入和顯示利耍,置光標(biāo)、開窗口、顏色設(shè)置等屏幕功能隘梨;掌握分支程序中字符比較及統(tǒng)計(jì)的程序設(shè)計(jì)程癌,循環(huán)及排序程序設(shè)計(jì)方法;加入中斷調(diào)用的計(jì)時(shí)功能轴猎。通過上述綜合性訓(xùn)練嵌莉,進(jìn)一步加深對匯編語言的理解和提高程序設(shè)計(jì)技能。

內(nèi)容:

1.屏幕出現(xiàn)打字練習(xí)菜單(格式自定捻脖,字體锐峭、字號、顏色)

2.菜單項(xiàng)目為4項(xiàng):照打可婶,覆蓋打沿癞,名次,退出

程序框圖:

程序框圖

代碼實(shí)現(xiàn)

```

data segment

menu? db 0ah,0dh,' Input number to chose your function'

db 0ah,0dh,' ? ? ? 1.Follow Typing'

db 0ah,0dh,' ? ? ? 2.Cover Typing'

; db 0ah,0dh,' ? ? ? 3.Ranking'

db 0ah,0dh,' ? ? ? 3.Exit'

db 0ah,0dh,'Please input your select:$'

mess1 db 0ah,0dh,' This is the Follow Typing page.'

db 0ah,0dh,' ? ? Please input accordance with those word!$'

mess2 db 0ah,0dh,' This is the Cover Typing page.'

db 0ah,0dh,' ? ? Please input accordance with those word!'

db 0ah,0dh,' (Yellow is right, Red is wrong!)$'

mess3 db 0ah,0dh,'This is third select$'

mess4 db 0ah,0dh,' Thank you for your use!$'

mess5 db 0ah,0dh,'Your right number is:$'

endline db 0ah,0dh,'$'

mess? db 255,?,255 dup(?)

text? db 'New strides have been taken in strengthening national defense and army building.$'

right db '0$'

sum? db '/80$'

num? db 0

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

let0:

mov ax,0

mov dx,offset menu ;顯示菜單

mov ah,9

int 21h

mov ah,1 ;輸入選擇

int 21h

cmp al,'1' ;輸入為1,跳轉(zhuǎn)到照打界面

jz prog1

cmp al,'2' ;輸入為2,跳轉(zhuǎn)到覆蓋打界面

jz prog2

cmp al,'3' ;輸入為3,跳轉(zhuǎn)到名次界面

jz prog3

jmp prog4 ;輸入不為1或2或3,退出程序

prog1:

jmp real_prog1

prog2:

jmp real_prog2

prog3:

jmp real_prog3

prog4:

jmp real_prog4

real_prog1: ;照打界面

mov ax,0003h ;清屏

int 10h

mov dx,offset mess1 ;顯示提示信息

mov ah,9

int 21h

mov dx,offset endline ;換行

int 21h

mov dx,offset endline ;換行

int 21h

mov dx,offset text ;顯示文章

mov ah,9

int 21h

mov dx,offset endline ;換行

int 21h

mov dx,offset mess ;輸入串

mov ah,10

int 21h

;輸入完畢,開始進(jìn)行循環(huán)比較

mov ax,0

mov di,0 ;存儲(chǔ)正確個(gè)數(shù)

mov cl,mess+1 ;輸入的字母個(gè)數(shù),即循環(huán)的次數(shù)

mov bx,2 ;第一個(gè)字符的單元位置

let1:

mov dl,text[bx-2]

cmp mess[bx],dl ;判斷是否輸入正確

jz let2 ;輸入正確 跳到let2

jmp out1 ;跳到公共出口 out1

let2: ;正確數(shù)+1

add ax,1

add di,1

out1:

dec cl ;循環(huán)次數(shù)-1

inc bx

cmp cl,0

jnz let1

jz out2

out2: ;檢查結(jié)束,輸出結(jié)果

mov dx,offset mess5

mov ah,9

int 21h

;輸出正確個(gè)數(shù)

mov ax,di

mov bl,10

div bl

add ah,'0'

mov right,ah

add al,'0'

mov dl,al

mov ah,2

int 21h

mov dl,right

mov ah,2

int 21h

mov right,0 ;重置right為0

mov di,0

mov dx,offset sum

mov ah,9

int 21h

jmp let0 ;返回選擇菜單

real_prog2: ;覆蓋打界面

mov dx,offset mess2

mov ah,9

int 21h

mov ax,0003h ;清屏

int 10h

;置顯示光標(biāo)

mov ah,2

mov dh,4

mov dl,0

mov bh,0

int 10h

;顯示串

mov dx,offset mess2

mov ah,9

int 21h

mov dx,offset endline ;換行

int 21h

mov dx,offset endline ;換行

int 21h

mov dx,offset text

mov ah,9

int 21h

;置輸入光標(biāo)

mov ah,2

mov dh,9

mov dl,0

int 10h

mov si,80 ;循環(huán)次數(shù)

mov bx,0 ;第一個(gè)字符的單元位置

mov di,0 ;正確個(gè)數(shù)

mov num,0 ;顯示列的位置

prog2_let1:

;輸入字符

mov ah,1

int 21h

mov dl,text[bx]

cmp al,0DH ;判斷是否輸入回車

jz prog2_out2

cmp al,dl ;判斷是否輸入正確

jz prog2_let2 ;輸入正確 跳到let2

cmp al,dl

jnz prog2_let3 ;輸入錯(cuò)誤,跳到let3

jmp prog2_out1 ;跳到公共出口out1

prog2_let2:

add di,1 ;正確數(shù)+1

;輸入正確,改變?yōu)辄S色

mov ah,06h

mov al,0

mov bh,0eh

mov ch,8

mov cl,num

mov dh,9

mov dl,num

int 10h

;置顯示光標(biāo)

mov ah,2

mov dh,9

mov dl,num

mov bh,0

int 10h

mov dl,text[bx]

mov ah,2

int 21h

jmp prog2_out1 ;跳到公共出口out1

prog2_let3:

;輸入錯(cuò)誤,響鈴

mov ah,2

mov dl,7

int 21h

;輸入錯(cuò)誤,改變?yōu)榧t色

mov ah,06h

mov al,0

mov bh,04h

mov ch,8

mov cl,num

mov dh,9

mov dl,num

int 10h

;置顯示光標(biāo)

mov ah,2

mov dh,9

mov dl,num

mov bh,0

int 10h

mov dl,text[bx]

mov ah,2

int 21h

jmp prog2_out1 ;跳到公共出口out1

prog2_out1:

dec si ;循環(huán)次數(shù)-1

inc bx

inc num

cmp si,0

jnz jump_prog2_let1 ;si≠0,繼續(xù)循環(huán)

jz prog2_out2

jump_prog2_let1:

jmp prog2_let1

prog2_out2: ;循環(huán)結(jié)束,輸出結(jié)果

mov dx,offset mess5

mov ah,9

int 21h

;輸出正確個(gè)數(shù)

mov ax,di

mov bl,10

div bl

add ah,'0'

mov right,ah

;add al,74

add al,'0'

mov dl,al

mov ah,2

int 21h

mov dl,right

mov ah,2

int 21h

mov right,0 ;重置正確個(gè)數(shù)為0

mov di,0

mov dx,offset sum

mov ah,9

int 21h

jmp let0

real_prog3: ;名次界面

mov dx,offset mess3

mov ah,9

int 21h

jmp let0 ;返回選擇菜單

real_prog4: ;退出

mov dx,offset mess4

mov ah,9

int 21h

mov ah,4ch

int 21h

code ends

end start

```

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末矛渴,一起剝皮案震驚了整個(gè)濱河市椎扬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌具温,老刑警劉巖蚕涤,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異铣猩,居然都是意外死亡揖铜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門达皿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來天吓,“玉大人,你說我怎么就攤上這事鳞绕∈剩” “怎么了尸曼?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵们何,是天一觀的道長。 經(jīng)常有香客問我控轿,道長冤竹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任茬射,我火速辦了婚禮鹦蠕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘在抛。我一直安慰自己钟病,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肠阱,像睡著了一般票唆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上屹徘,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天走趋,我揣著相機(jī)與錄音,去河邊找鬼噪伊。 笑死簿煌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鉴吹。 我是一名探鬼主播姨伟,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼豆励!你這毒婦竟也來了授滓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤肆糕,失蹤者是張志新(化名)和其女友劉穎般堆,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诚啃,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡淮摔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了始赎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片和橙。...
    茶點(diǎn)故事閱讀 38,789評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖造垛,靈堂內(nèi)的尸體忽然破棺而出魔招,到底是詐尸還是另有隱情,我是刑警寧澤五辽,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布办斑,位于F島的核電站,受9級特大地震影響杆逗,放射性物質(zhì)發(fā)生泄漏乡翅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一罪郊、第九天 我趴在偏房一處隱蔽的房頂上張望蠕蚜。 院中可真熱鬧,春花似錦悔橄、人聲如沸靶累。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挣柬。三九已至拴曲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凛忿,已是汗流浹背澈灼。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留店溢,地道東北人叁熔。 一個(gè)月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像床牧,于是被迫代替她去往敵國和親荣回。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容