?? pml.s
字號(hào):
.data #下列語(yǔ)句是數(shù)據(jù)代碼行
psword1: .word 2008
psword2: .word 2009
psword3: .word 2010
p1: .asciiz "
*************************************************************************
歡迎使用汕頭列車(chē)時(shí)刻表在線(xiàn)查詢(xún)系統(tǒng)
制作者:潘銘路
*************************************************************************
請(qǐng)輸入登錄密碼:"
p2: .asciiz "密碼輸入錯(cuò)誤,請(qǐng)重新輸入:"
p3: .asciiz "對(duì)不起,你輸入錯(cuò)誤密碼已達(dá)三次,現(xiàn)在退出系統(tǒng)..."
p4: .asciiz "歡迎進(jìn)入汕頭列車(chē)時(shí)刻表在線(xiàn)查詢(xún)系統(tǒng),我們將竭誠(chéng)為您服務(wù)!\n"
per1: .asciiz "您好,Davidson先生!\n"
per2: .asciiz "您好,Reza先生!\n"
per3: .asciiz "您好,馬德高先生!\n"
p5: .asciiz "請(qǐng)選擇您這次旅行的目的地:
1.廣州 2.合肥 3.深圳 4.南昌 5.徐州 6.南京 7.北京 8.上海 9.青島
請(qǐng)輸入您的選擇(1-9):"
p6: .asciiz "您的輸入不是有效的選擇,請(qǐng)重新選擇...\n"
p7: .asciiz "您想繼續(xù)查詢(xún)其它地方嗎?
1.是 2.否
請(qǐng)輸入您的選擇:"
m1: .asciiz "
能直達(dá)汕頭和廣州之間的列車(chē)車(chē)次
車(chē)次 全程始發(fā) 全程終點(diǎn) 列車(chē)類(lèi)型 出發(fā)站 發(fā)車(chē)時(shí)間 目的站 到達(dá)時(shí)間 耗時(shí) 距離
N626/N627次 汕頭 茂名東 空調(diào)快速 汕頭 09:14 廣州 16:25 7小時(shí)11分鐘 -公里
N622/N623次 汕頭 廣州東 空調(diào)快速 汕頭 09:48 廣州東 18:00 8小時(shí)12分鐘 -公里\n"
m2: .asciiz "
沒(méi)有查詢(xún)到可以直達(dá)的車(chē)次--從汕頭到合肥
可以中轉(zhuǎn)車(chē)次如下:
第一種方案:從汕頭經(jīng)鄂州到合肥
出發(fā)車(chē)次 汕頭發(fā)車(chē) 到達(dá)鄂州 旅行時(shí)間 旅行距離
1018/1015(汕頭-武昌) 17:35 10:44 17小時(shí)09分鐘 -
中轉(zhuǎn)車(chē)次 鄂州發(fā)車(chē) 到達(dá)合肥 旅行時(shí)間 旅行距離
T291/T294(武昌-合肥) 14:26 21:59 7小時(shí)30分鐘 -
第二種方案:從汕頭經(jīng)黃石到合肥
出發(fā)車(chē)次 汕頭發(fā)車(chē) 到達(dá)黃石 旅行時(shí)間 旅行距離
1018/1015(汕頭-武昌) 17:35 10:03 16小時(shí)28分鐘 -
中轉(zhuǎn)車(chē)次 黃石發(fā)車(chē) 到達(dá)合肥 旅行時(shí)間 旅行距離
T291/T294(武昌-合肥) 14:50 21:54 7小時(shí)13分鐘 -\n"
m3:.asciiz "
能直達(dá)汕頭和深圳之間的列車(chē)車(chē)次
車(chē)次 全程始發(fā) 全程終點(diǎn) 列車(chē)類(lèi)型 出發(fā)站 發(fā)車(chē)時(shí)間 目的站 到達(dá)時(shí)間 耗時(shí) 距離
N634/N631次 汕頭 深圳 空調(diào)快速 汕頭 06:26 深圳 14:29 8小時(shí)03分鐘 -公里\n"
m4: .asciiz "
能直達(dá)汕頭和南昌之間的列車(chē)車(chē)次
車(chē)次 全程始發(fā) 全程終點(diǎn) 列車(chē)類(lèi)型 出發(fā)站 發(fā)車(chē)時(shí)間 目的站 到達(dá)時(shí)間 耗時(shí) 距離
1018/1015次 汕頭 南昌 空調(diào)普快 汕頭 17:35 南昌 06:31 12小時(shí)56分鐘 -公里\n"
m5: .asciiz "
沒(méi)有查詢(xún)到可以直達(dá)的車(chē)次--從汕頭到徐州
可以中轉(zhuǎn)車(chē)次如下:
從汕頭經(jīng)南昌到徐州
出發(fā)車(chē)次 汕頭發(fā)車(chē) 到達(dá)南昌 旅行時(shí)間 旅行距離
1018/1015(汕頭-武昌) 17:35 06:31 12小時(shí)56分鐘 -
中轉(zhuǎn)車(chē)次 南昌發(fā)車(chē) 到達(dá)徐州 旅行時(shí)間 旅行距離
K302(廣州-徐州) 11:09 22:17 11小時(shí)25分鐘 -\n"
m6: .asciiz "
沒(méi)有查詢(xún)到可以直達(dá)的車(chē)次--從汕頭到南京
可以中轉(zhuǎn)車(chē)次如下:
從汕頭經(jīng)龍川到南京
出發(fā)車(chē)次 汕頭發(fā)車(chē) 到達(dá)龍川 旅行時(shí)間 旅行距離
N622/N623(汕頭-廣州東) 09:48 14:20 4小時(shí)32分鐘 -
中轉(zhuǎn)車(chē)次 龍川發(fā)車(chē) 到達(dá)南京 旅行時(shí)間 旅行距離
K26(深圳西-南京西) 16:15 13:32 21小時(shí)22分鐘 -\n"
m7: .asciiz "
沒(méi)有查詢(xún)到可以直達(dá)的車(chē)次--從汕頭到北京
可以中轉(zhuǎn)車(chē)次如下:
從汕頭經(jīng)廣州東到北京
出發(fā)車(chē)次 汕頭發(fā)車(chē) 到達(dá)廣州東 旅行時(shí)間 旅行距離
N622/N623(汕頭-廣州東) 09:48 18:00 8小時(shí)12分鐘 -
中轉(zhuǎn)車(chē)次 廣州東發(fā)車(chē) 到達(dá)北京 旅行時(shí)間 旅行距離
T98B(九龍-北京西) 18:04 15:41 22小時(shí)18分鐘 2302\n"
m8: .asciiz "
沒(méi)有查詢(xún)到可以直達(dá)的車(chē)次--從汕頭到上海
可以中轉(zhuǎn)車(chē)次如下:
從汕頭經(jīng)龍川到上海
出發(fā)車(chē)次 汕頭發(fā)車(chē) 到達(dá)龍川 旅行時(shí)間 旅行距離
N622/N623(汕頭-廣州東) 09:48 14:20 4小時(shí)32分鐘 -
中轉(zhuǎn)車(chē)次 龍川發(fā)車(chē) 到達(dá)上海 旅行時(shí)間 旅行距離
T212(深圳-上海南) 16:29 06:50 14小時(shí)23分鐘 1414\n"
m9: .asciiz "
沒(méi)有查詢(xún)到可以直達(dá)的車(chē)次--從汕頭到青島
可以中轉(zhuǎn)車(chē)次如下:
從汕頭經(jīng)南昌到青島
出發(fā)車(chē)次 汕頭發(fā)車(chē) 到達(dá)南昌 旅行時(shí)間 旅行距離
1018/1015(汕頭-武昌) 17:35 06:31 12小時(shí)56分鐘 -
中轉(zhuǎn)車(chē)次 南昌發(fā)車(chē) 到達(dá)青島 旅行時(shí)間 旅行距離
K342/K343(南昌-青島) 17:01 11:23 18小時(shí)22分鐘 -\n"
l1: .asciiz "歡迎您再次使用本系統(tǒng),再見(jiàn)!"
.text #下列語(yǔ)句行是指令代碼行
.globl main #main是全局符號(hào),它對(duì)其它文件中的代碼是可見(jiàn)的
main:
li $t0,2008 #設(shè)置Davidson先生的密碼
li $t1,2009 #設(shè)置Reza先生的密碼
li $t2,2010 #設(shè)置馬德高先生的密碼
li $t3,0 #計(jì)算密碼輸入錯(cuò)誤次數(shù)
la $a0,p1 #字符串地址
li $v0,4
syscall #打印字符串
j getpsword #跳轉(zhuǎn)到getpsword
#密碼不正確,則退出系統(tǒng)
end:
la $a0,p3 #字符串地址
li $v0,4 #print_string系統(tǒng)調(diào)用碼
syscall #打印字符串
li $v0,10 #exit系統(tǒng)調(diào)用碼
syscall #退出系統(tǒng)
getsagain:
bge $t3,2,end #如果輸入錯(cuò)誤密碼次數(shù)3次,則跳轉(zhuǎn)至end
la $a0,p2 #字符串地址
li $v0,4 #print_string系統(tǒng)調(diào)用碼
syscall #打印字符串
add $t3,$t3,1 #密碼輸入錯(cuò)誤次數(shù)加1
#密碼輸入,并將起存入$s0
getpsword:
li $v0,5 #read_int系統(tǒng)調(diào)用碼
syscall
add $s0,$v0,$zero
beq $s0,$t0,person1 #如果密碼是2008,則跳轉(zhuǎn)到person1
beq $s0,$t1,person2 #如果密碼是2009,則跳轉(zhuǎn)到person2
bne $s0,$t2,getsagain #如果密碼不是2010,則跳轉(zhuǎn)到getsagain
beqz $zero,person3 #如果密碼是2010,則跳轉(zhuǎn)到person3
person1:
la $a0,per1
li $v0,4
syscall #打印字符串
j begin1 #跳轉(zhuǎn)到begin1
person2:
la $a0,per2
li $v0,4
syscall #打印字符串
j begin1 #跳轉(zhuǎn)到begin1
person3:
la $a0,per3
li $v0,4
syscall #打印字符串
begin1:
la $a0,p4
li $v0,4
syscall #打印字符串
begin2:
la $a0,p5
li $v0,4
syscall #打印字符串
#對(duì)用戶(hù)輸入的選擇進(jìn)行判斷,并輸出查詢(xún)結(jié)果
begin3:
li $v0,5 #read_int系統(tǒng)調(diào)用碼
syscall #輸入選擇
add $s0,$v0,$zero #將輸入的選擇存儲(chǔ)在寄存器$s0中
slti $s1,$s0,1
bne $s1,$zero,reinput #若$s0小于1,則跳轉(zhuǎn)到reinput
slti $s1,$s0,10
beq $s1,$zero,reinput #若$s0大于等于10,則跳轉(zhuǎn)到reinput
li $v0,1
add $s2,$v0,$zero
beq $s0,$s2,search1 #若$s0等于1,則跳轉(zhuǎn)到search1
li $v0,2
add $s2,$v0,$zero
beq $s0,$s2,search2 #若$s0等于2,則跳轉(zhuǎn)到search2
li $v0,3
add $s2,$v0,$zero
beq $s0,$s2,search3 #若$s0等于3,則跳轉(zhuǎn)到search3
li $v0,4
add $s2,$v0,$zero
beq $s0,$s2,search4 #若$s0等于4,則跳轉(zhuǎn)到search4
li $v0,5
add $s2,$v0,$zero
beq $s0,$s2,search5 #若$s0等于5,則跳轉(zhuǎn)到search5
li $v0,6
add $s2,$v0,$zero
beq $s0,$s2,search6 #若$s0等于6,則跳轉(zhuǎn)到search6
li $v0,7
add $s2,$v0,$zero
beq $s0,$s2,search7 #若$s0等于7,則跳轉(zhuǎn)到search7
li $v0,8
add $s2,$v0,$zero
beq $s0,$s2,search8 #若$s0等于8,則跳轉(zhuǎn)到search8
#若$s0不等于以上數(shù)字,則必為9,即執(zhí)行search9
search9:
la $a0,m9
li $v0,4
syscall #打印字符串
j againserch #跳轉(zhuǎn)到againserch
search1:
la $a0,m1
li $v0,4
syscall #打印字符串
j againserch #跳轉(zhuǎn)到againserch
search2:
la $a0,m2
li $v0,4
syscall #打印字符串
j againserch #跳轉(zhuǎn)到againserch
search3:
la $a0,m3
li $v0,4
syscall #打印字符串
j againserch #跳轉(zhuǎn)到againserch
search4:
la $a0,m4
li $v0,4
syscall #打印字符串
j againserch #跳轉(zhuǎn)到againserch
search5:
la $a0,m5
li $v0,4
syscall #打印字符串
j againserch #跳轉(zhuǎn)到againserch
search6:
la $a0,m6
li $v0,4
syscall #打印字符串
j againserch #跳轉(zhuǎn)到againserch
search7:
la $a0,m7
li $v0,4
syscall #打印字符串
j againserch #跳轉(zhuǎn)到againserch
search8:
la $a0,m8
li $v0,4
syscall #打印字符串
j againserch #跳轉(zhuǎn)到againserch
#輸入的不是有效的選擇,重新輸入
reinput:
la $a0,p6
li $v0,4
syscall #打印字符串
j begin2 #跳轉(zhuǎn)到begin2
#判斷是否要繼續(xù)查詢(xún)
againserch:
la $a0,p7
li $v0,4
syscall #打印字符串
againserch1:
li $v0,5 #read_int系統(tǒng)調(diào)用碼
syscall #輸入選擇
add $s0,$zero,$v0 #將輸入的數(shù)字存在寄存器$s0中
slti $s1,$s0,1
bne $s1,$zero,reinput1 #若$s0小于1,則跳轉(zhuǎn)到reinput1
slti $s1,$s0,3
beq $s1,$zero,reinput1 # 若$s0大于等于3,則跳轉(zhuǎn)到reinput1
li $v0,1
add $s2,$v0,$zero
beq $s0,$s2,begin2 #若$s0等于1,則跳轉(zhuǎn)到begin2
li $v0,2
add $s2,$v0,$zero
beq $s0,$s2,exit0 #若$s0等于2,則跳轉(zhuǎn)到exit0
#輸入的不是有效的選擇,重新輸入
reinput1:
la $a0,p6
li $v0,4
syscall #打印字符串
j againserch #跳轉(zhuǎn)到againserch
#若不再使用系統(tǒng),則退出
exit0:
la $a0,l1
li $v0,4
syscall #打印字符串
li $v0,10 #exit系統(tǒng)調(diào)用碼
syscall #退出系統(tǒng)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -