版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一次上機(jī)
一、實(shí)驗(yàn)?zāi)康?/p>
1.熟練掌握8086/8088的各種尋址方式及應(yīng)用。
2.掌握DEBUG調(diào)試程序中的一些常用命令的使用方法,為以后的實(shí)驗(yàn)
打下根底。
二、實(shí)驗(yàn)儀器
586微機(jī)一臺(tái)
三、實(shí)驗(yàn)內(nèi)容
1.關(guān)于數(shù)據(jù)的尋址方式練習(xí)
8086/8088提供多種方式實(shí)現(xiàn)操作數(shù)尋址,大體可分為7種:
a.立即尋址
b.存放器尋址
c.直接尋址
d.存放器間接尋址
e.存放器相對(duì)尋址
f.基址變址尋址
g.基址變址且相對(duì)尋址
掌握8086/8088的這些尋址方式,是學(xué)習(xí)匯編語言編程的關(guān)鍵。因此,
我們編寫了下面的程序段,以數(shù)據(jù)傳送指令為例,列舉了部份尋址方式,請(qǐng)同
學(xué)們按以下要求認(rèn)真完成。
[1]在全屏幕編輯軟件下,建立以下匯編語言源程序:
STACKSEGMENTSTACK
DB0B0H,0B1H,0B2H,0B3H,0B4H,0B5H,0B6H,0B7H,
DR0R8H,0R9H
DBOBAH,OBBH,OBCH,OBDH,OBEH,OB-H
DB10HDUP(OO)
STACKENDS
DATA1SEGMENT
DBOAOH,0A1H,0A2H,0A3H
TABLEDW0A5A4H
DB0A6H,0A7H,0A8H,0A9H,OAAH,OABH
DBOACH,OADH,OAEH,OAFH
DATA1ENDS
DATA2SEGMENT
DBOCOH,OC1H,0C2H,0C3H,0C4H,0C5H,0C6H,0C7H
DB0C8H,0C9H,OCAH,OCBH,OCCH,OCDH,OCEH,OCFH
DATA2ENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA1,ES:DATA2,SS:STACKSTART:MOVAX,DATA1
MOVDS,AX
MOVAX,DATA2
MOVES,AX
MOVBX,0004H
MOVCX,0005H
MOVBP,0U03H
MOVSI,0002H
MOVDI.0001H
MOVAX,CX;以下指令按后表要求完成
MOVAX,500H
MOVAX,TABLE
MOVAX,ES:[BX]
MOVAX,[BX+05H]
MOVAX,SS:[BX]+03H
MOVAX,TABLE[BX]
MOVAX,07H[BX]
MOVAX,[BP]
MOVAX,TABLE[BP]
MOVAX,08H[BP]
MOVAX,[BP+06H]
MOVAX,DS:[BP+03H]
MOVAX,[BP]+05H
MOVAX,ES:[SI+03H]
MOVAX,IDI+U6H]
MOVAX,[DI]+05H
MOVAX,TABLE[SI]
MOVAX,[SI]
MOVAX,TABLE[DI]
MOVAX,[SI]+05H
MOVAX,[BX][DI+01H]
MOVAX,[BX][SI]+03H
MOVAX,TABLE[BX][SI]
MOVAX,ES:[BX][DI]
MOVAX,[BP][DI+02H]
MOVAX,TABLE[BP][DI]
MOVAX,ES:[BP][SI]
MOVAX,[BP][SI+05H]
MOVAX,03H[BP][DI]
MOVAX,[BP][SI]
MOVAX,[BP+02H][DI+03H]
MOVAX,TABLE[BP+02H][DI+03H]
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
[2]用MASM.EXE宏匯編程序?qū)σ陨显闯绦蜻M(jìn)行匯編,其方法為:
MASM文件名.ASM;回車
此時(shí),如果源程序中無語法錯(cuò)誤,那么在磁盤上形成文件名QBJ文件。
[3]用LINK.EXE連接程序?qū)ξ募?OBJ文件進(jìn)行連接,其方法為:
LINK文件名.OBJ;回車
此時(shí),如果連接正確,那么在磁盤上形成:文件名.EXE可執(zhí)行文件。
[4]對(duì)源程序中從MOVAX,CX開始以下所有指令按下表進(jìn)行計(jì)算。
SRC的地AX推算AX實(shí)
指令SRC尋址方式
址值際值
MOVAX,CX存放器尋址00050005
MOVAX,500H立即尋址05000500
1541:000
MOVAX,TABLE直接尋址A5A4A5A4
4
1542:000
MOVAX,ES:[BX]存放器間接尋址C5C4C5C4
4
1541:000
MOVAX,[BX+05H]存放器相對(duì)尋址AAA9AAA9
9
153F:000
MOVAX,SS:[BX]+03H存放器相對(duì)尋址B8B7B8B7
7
1541:000
MOVAX,TABLE[BX]存放器相對(duì)尋址A9A8A9A8
8
1541:000
MOVAX,07H[BX]存放器相對(duì)尋址ACABACAB
B
153F:000
MOVAX,[BP]存放器間接尋址B4B3B4B3
3
MOVAX,T/\BLE[BP]存放器相對(duì)尋址1541:000A8A7A8A7
7
MOVAX,08H[BP]存放器相對(duì)尋址153F:000BCBBBCBB
B
MOVAX,[BP+06H]存放器相對(duì)尋址153F:000BAB9BAB9
9
MOVAX,DS:[BP+O3H]存放器相對(duì)尋址1541:000A7A6A7A6
6
MOVAX,[BP]+05H存放器相對(duì)尋址153F:000B9B8B9B8
8
MOVAX,ES:[SI+03H]存放器相對(duì)尋址1542:000C6C5C6C5
5
MOVAX,[DI+06H]存放器相對(duì)尋址1541:000A8A7A8A7
7
MOVAX,[DI1+05H存放器相對(duì)尋址1541:000A7A6A7A6
6
MOVAX,TABLE[SI]存放器相對(duì)尋址1541:000A7A6A7A6
6
MOVAX,[SI]存放器間接尋址1541:000A3A2A3A2
2
MOVAX,TABLE[DI]存放器相對(duì)尋址1541:000A6A5A6A5
5
MOVAX,[SI]+05H存放器相對(duì)尋址1541:000A8A7A8A7
7
MOVAX,[BX][DI+O1H]基址變址且相對(duì)尋址1541:000A7A6A7A6
6
MOVAX,[BX][SI]+03H基址變址且相對(duì)尋址1541:000AAA9AAA9
9
MOVAX,TABLE[BX][SI]基址變址且相對(duì)尋址1541:000ABAAABAA
A
MOVAX,ES:[BX][DI]基址變址尋址1542:000C6C5C6C5
5
MOVAX,[BP][DI+02U]基址變址口相對(duì)尋址153F:000B7B6B7B6
6
MOVAX,TABLE[BP][DI]基址變址且相對(duì)尋址1541:000A9A8A9A8
8
MOVAX,ES:[BP][SI]基址變址尋址1542:000C6C5C6C5
5
MOVAX,[BP][SI+05H]基址變址且相對(duì)尋址153F:000BBBABBBA
A
MOVAX,03H[BP][DI]基址變址且相對(duì)尋址153F:000B8B7B8B7
7
MOVAX,[BP][SI]基址變址尋址153F:000B6B5B6B5
5
MOVAX,[BP+02H][DI+03H]基址變址且相對(duì)尋址153F:000BAB9BAB9
9
MOVAX,TABLE[BP+02H]基址變址且相對(duì)尋址1541:000AEADAEAD
[DI+03H]D
[5]用T命令單步運(yùn)行程序,并用R命令檢查AX結(jié)果,同時(shí)將結(jié)果作為實(shí)際
值填入上表中,和推算值進(jìn)行比擬,從而檢驗(yàn)自己對(duì)該條指令對(duì)應(yīng)的尋址方式
是否掌握。也可用D命令觀察存貯器的內(nèi)容,具體操作方法參看DEBUG使
用局部。
四、問題討論
在上表中,分析AX推算值與實(shí)際值有何不同?找出錯(cuò)誤原因,小結(jié)出各種尋
址方式所用的段存放器的規(guī)律來
第二次上機(jī)
一、實(shí)驗(yàn)?zāi)康?/p>
1.熟練掌握匯編語言程序設(shè)計(jì)的方法及上機(jī)步驟。
2.掌握算術(shù)運(yùn)算中,十進(jìn)制數(shù)調(diào)整指令的應(yīng)用。
3.掌握子程序的設(shè)計(jì)方法。
4.掌握DOS功能的調(diào)用方法。
二、實(shí)驗(yàn)儀器
586微機(jī)一臺(tái)
二、實(shí)驗(yàn)內(nèi)容
1.編寫求十進(jìn)制數(shù)12678532與02121435(本人學(xué)號(hào))之和的程序,并將和以十進(jìn)制數(shù)
的形式送屏幕顯示。
編程要求與提示:
[1]兩個(gè)加數(shù)均以壓縮(組合)十進(jìn)制數(shù)形式存放在ADD1和ADD2為首址的存貯器單元。
[2]和以壓縮十進(jìn)制數(shù)的形式存入SUM以下單元。
[3]將和送到屏幕顯示局部功能的實(shí)現(xiàn)采用子程序的形式。
[4]實(shí)驗(yàn)步驟如下:
a.用全屏幕編輯軟件建立源程序。
b.用masm.exe匯編程序?qū)υ闯绦蜻M(jìn)行匯編,形成目標(biāo)程序。
U.用1ink.exe連接程序?qū)δ繕?biāo)程序進(jìn)行連接形成可執(zhí)行文件。
d.用DEBUG對(duì)連接通過的可執(zhí)行程序進(jìn)行調(diào)試。
2.有一個(gè)首地址為A的N字?jǐn)?shù)組,請(qǐng)編程序使該數(shù)組中的數(shù)按從大到小的次序排列。
編程要求與提示:
[1]參加排序的數(shù)據(jù)及個(gè)數(shù)由學(xué)生自一定義。
[2]要將排序前的數(shù)組和排序后的數(shù)組在屏幕上顯示出來。
[3]實(shí)驗(yàn)步驟同內(nèi)容一。
三、實(shí)驗(yàn)程序、流程圖與運(yùn)行結(jié)果
1、
實(shí)驗(yàn)程序
STACKSEGMENTSTAC<'STACK'
DW100HDUP。)
TOPLABELWORD
STACKENDS;堆棧段
DATASEGMENT
ADD1DD12678532H
ADD2DD02121435H
SUMDD?
DATAENDS;數(shù)據(jù)段
CODESEGMENT代碼段
ASSUMECS:CODE,DS:DATA,SS:STACK
START:MOVAX.DATA
MOVDS,AX
MOVAX,STACK
MOVSS.AX
LEASP.TOP
LEASI.ADD1
LEADI.ADD2
MOVAL,[SI]
ADDAL,[DI]
DAA
MOVBYTEPTRSUM.AL
MOVAL,[SI+1]
ADCAL,[DI+1]
DAA
MOVBYTEPTRSUM+1,AL
MOVAL,[SI+2]
ADCAL,[DI+2]
DAA
MOVBYTEPTRSUM+2,AL
MOVAL,[SI+3]
ADCAL,[DI+3]
DAA
MOVBYTEPTRSUM+3,AL
MOVAX,WORDPTRSUM+2
CALLDISPAX
MOVAX,WORDPTRSUM
CALLDISPAX
MOVAH.4CH
INT21H
DISPALPROCNEAR
PUSHAX
PUSHCX
PUSHDX
PUSHAX
MOVCL,4
SHRAL,CL
CALLCHANG
MOVAH,02
MOVDL,AL
INT21H
POPAX
ANDAL.OFH
CALLCHANG
MOVAH.02
MOVDL.AL
INT21H
POPDX
POPCX
POPAX
RET
DISPALENDP
CHANGPROCNEAR
CMPAL,10
JNGECHANG1
ADDAL,7
CHANG1:ADDAL.30H
RET
CHANGENDP
DISPAXPROCNEAR
XCHGAL,AH
CALLDISPAL
XCHGAH,AL
CALLDISPAL
RET
DISPAXENDP
CODEENDS
ENDSTART
運(yùn)行結(jié)果
E:\>WORK1.EXE
14799967
E:\>
流程圖
2、
實(shí)驗(yàn)程序
STACKSEGMENTSTACK
DB256DUP(?)
STACKENDS
DATASEGMENT
DATA1DW0212H,1435H,0000H,9999H,1AAAH
STRING1DB'INPUTNUMBER:',ODH,OAH,'$'
SIKING2DB'IHbBIGtKIDIHbSMALLbKI5:',ODH,OAH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK
START:MOVAX,DATA
MOVDS,AX
MOVES.AX
MOVAX,STACK
MOVSS,AX
LEADX.STRING1
MOVAH.09H
INT21H
MOVCX,6
LEASI.DATA1
L1:MOVAX,[SI]
ADDSI,2
CALLDISPAX
CALLDISPCR
LOOPL1
MOVCX,5
LEASI.DATA1
ADDSI,10
LP1:PUSHCX
PUSHSI
LP2:MOVAX,[SI]
CMPAX,[SI-2]
JBENOXCHG
XCHGAX,[SI-2]
MOV[SI],AX
NOXCHG:DECSI
DECSI
LOOPLP2
POPSI
POPCX
LOOPLP1
LEADX.STRING2
MOVAH,09H
INT21H
MOVCX,6
LEASI.DATA1
L2:MOVAX,[SI]
ADDSI,2
CALLDISPAX
CALLDISPCR
LOOPL2
MOVAH.4CH
INT21H
DISPALPROC
PUSHAX
PUSHCX
PUSHDX
PUSHAX
MOVCL,4
SHRAL,CL
CALLCHANG
MOVAH.02H
MOVDL.AL
INT21H
POPAX
ANDAX.OFH
CALLCHANG
MOVAH.02H
MOVDL.AL
INT21H
POPDX
POPCX
POPAX
RET
DISPALENDP
CHANGPROC
CMPAL.10
JNGECHANG1
ADDAL,7
CHANG1:ADDAL.30H
RET
CHANGENDP
DISPAXPROC
XCHGAL.AH
CALLDISPAL
XCHGAH.AL
CALLDISPAL
RET
DISPAXENDP
DISPCRPROC
PUSHAX
PUSHDX
MOVAH,2
MOVDL,0AH
INT21H
MOVAH,2
MOVDL.ODH
INT21H
POPDX
POPAX
RET
DISPCRENDP
CODEENDS
ENDSTART
實(shí)驗(yàn)結(jié)果
E:\>W0RK2.EXE
iINPUT:
0212
1435
0000
9999
4568
1AAA
TOUTPUT:
9999
4568
1AAA
1435
0212
f\aaa
匕“'___________
流程圖
START
N
三、問題討論
1.在以十進(jìn)制數(shù)形式參加運(yùn)算的程序設(shè)計(jì)中,應(yīng)注意那些問題。
2.總結(jié)循環(huán)程序設(shè)計(jì)的步驟及方法。
第三、四次上機(jī)
一、實(shí)驗(yàn)?zāi)康?/p>
1.增強(qiáng)和提高匯編語言程序設(shè)計(jì)的能力,掌握模塊化程序設(shè)計(jì)的方
法.
2.熟練掌握DOS常用功能的調(diào)用方法
二、實(shí)驗(yàn)儀器
586微機(jī)一臺(tái)
三、實(shí)驗(yàn)內(nèi)容
編寫如下程序,并在機(jī)器上調(diào)試成功。程序采用菜單式選擇,可以接收用
戶從鍵盤輸入的五個(gè)命令各命令功能分別為:
(1)按下“1”鍵,完成字符串小寫字母變成大寫字母。
用戶輸入一由英文大小寫字母或數(shù)字0-9組成的字符串(以回車結(jié)束),
程序逐個(gè)檢查字符串中各字符,將原串中小寫字母變成大寫字母,其他字符不
變,并在屏幕上顯示。用戶接任一鍵,重做,按ESC鍵,返回主菜單。
(2)按卜“2”鍵,完成我最大值(二選一〕。
a.接收用戶輸入的可顯示字符串(以回車結(jié)束),程序?qū)⑵渲蠥SCH碼值
最大的字符顯示出來;
b,接收用戶輸入假設(shè)干個(gè)無符號(hào)8位數(shù)(以空格或逗號(hào)為分隔符,以回車
結(jié)束),程序?qū)⑵渲凶畲蟮臄?shù)顯示出來。用戶按任一鍵,重做,按ESC鍵,返
回主菜單。
(3)按下“3”鍵,完成排序(二選一)。
a.接收用戶輸入的可顯示字符串,以回車結(jié)束。程序按ASCH碼值大小由
大到小排序并輸出顯示;
b.接收用戶輸入假設(shè)干個(gè)有符號(hào)8位數(shù)(以空格或逗號(hào)為分隔符,以回車
結(jié)束),程序?qū)⑵渲凶畲蟮臄?shù)顯示出來。用戶接任一鍵,重做,按ESC鍵,返
回主菜單。
(4)按下“4”鍵,顯示時(shí)間。
首先提示用戶對(duì)時(shí),即用戶輸入時(shí)、分、秒(以空格或逗號(hào)為分隔符,以
回車結(jié)束),然后,在屏幕上不斷顯示時(shí)間,格式為:
XX(時(shí)):XX(分):XX(秒)
最好定點(diǎn)顯示。用戶按任一鍵,重新對(duì)時(shí),按ESC鍵,返回主菜單。
(5)按下“5”鍵,結(jié)束程序運(yùn)行,返回系統(tǒng)提示符。
四、實(shí)驗(yàn)程序、流程圖與結(jié)果
實(shí)驗(yàn)程序
DISPLMACROSTR;Functiontodisplaystrings
PUSHDX
PUSHAX
LEADX.STR
MOVAH,09H
INT21H
POPAX
POPDX
ENDM
ISCONTINUEMACROL;Macrotojudgewhethertocontinue,Lisamark
DISPS15,10,SMENU
MOVAH.08H
INT21H
CMPAL,1BH
JNEL;假設(shè)用JE會(huì)導(dǎo)致編譯,跳不了那么遠(yuǎn)
JMPMAIN
ENDM
CURSORMACROCURX.CURY
PUSHAX
PUSHBX
PUSHDX;DX必須保護(hù),始終指向輸入緩沖區(qū)
MOVAH.02H
MOVDH.CURX
MOVDL.CURY
MOVBH,0
INT10H
POPDX
POPBX
POPAX
ENDM
DISPSMACROX.Y.STR;將STR的內(nèi)容顯示到X,Y的位圓
PUSHAX
PUSHBX
PUSHDX
MOVAH.02H
MOVBH.OOH;顯示頁碼,第。頁
MOVDH,X;行[X坐標(biāo))
MOVDL,Y;列(丫坐標(biāo)〕
INT10H
LEADX.STR
MOVAH.09H
INT21H
POPDX
POPBX
POPAX
ENDM
SCROLLMACRON.ULR.ULC.LRR.LRC.ATT
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVAH,06H
MOVAL,N;N=上卷行數(shù);N=0時(shí),清窗口
MOVCH.ULR;左上角行號(hào)1X)
MOVCL.ULC;左上角列號(hào)(Y)
MOVDH.LRR;右下角行號(hào)
MOVDL.LRC;右下角列號(hào)
MOVBH.ATT落入行屬性,顏色設(shè)置
INT10H
POPDX
POPCX
POPBX
POPAX
ENDM
PREPMACROT;預(yù)處理,顯示子菜單標(biāo)題(T),輸入提示信息等
LEASIJNBUF+1
LEADl.OUTBUF
SCROLL21,2,0,22,79,OFH;清屏,內(nèi)窗
DISPS3,20,T;顯示子菜單標(biāo)題(3行20列顯示T)
DISPS6,2,CAPION;Promptforastringtochange
DISPS8.2JNCAPprint"Yourinputis:"
MOVAH.OAH
INT21H
MOVCH,0
MOVCL,[SI];獲取輸入字符串中,字符的個(gè)數(shù)
INCSI
ENDM
STACKSEGMENTSTACK'STACK'
DB100HDUP(?)
TOPLABELWORD
STACKENDS
DATASEGMENT
BASEDWMAIN,LTC,FMV,SORTS,STM.EXIT;建立跳轉(zhuǎn)表
WELCMDB'Welcometousethisprogram!$'
MMENUDDB'02121452-Mr.HaoS'
MMENUCDB,ChooseAnItem,AndInputTheNumber!$'
MMENU1DB*1-LowercaseLettersToCapitalLetters$'
MMENU2DB'2-FindTheMaximumValue$'
MMENU3DB'3-Sort$'
MMENU4DB'4-SetTime$'
MMENU5DB15-Exit!$'
SMENUDB'PressAnyKeyToRedo.Press"ESC"ToReturnToMainMenu!$'
WROCAPDB'WRONG!Youhavepress""key!Pleaseinputanumberbetween1and5!$'
CAPIONDB'PleaseInputYourStringsandEndWith"Enter"Key!$'
INCAPDB'YourInputIs:$'
INBUFDB100
DB?
DB100DUP(?)
OUTCAPDB'MyOutputIs:$'
OUTBUFDB100DUP(?)
MAXCAPDB'ThecharofmaxASCIIis:.$'
ERRINFDB'ERROR!Pleasechecktheformatyouinput!$'
TIMESETCDB'Now,youcansetthetime!$,
TIMESETFDB'Format:(012532)or(01:25:32),andendwithCR!$'
TIMESETSDB'Succeed!
TDINVDB'Invalidtimedata!Inputagain!$'
NODATCAPDB'Youhaveinputnothing's'
TIMEDB8DUP(':)12DUP('');時(shí)間的底
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK
START:MOVAX,DATA
MOVDS,AX
MOVES.AX
MOVAX.STACK
MOVSS.AX
LEASP.TOP
LEADX.INBUF指向輸入緩沖區(qū)
CLC
MAIN:SCROLL0,0,0,24,79,0;清屏
SCROLL21,2,0,22,79,OFF;設(shè)置菜單顏色,黑底白字〃注意逗號(hào)應(yīng)為半角字符,否那么提示outofmemoryu
DISPS6,30,MMENUD
DISPS8,20,MMENUC
DISPS10,20,MMENU1
DISPS12,20,MMENU2
DISPS14,20,MMENU3
DISPS16.20.MMENU4
DISPS18,20,MMENU5
ML:CURSOR19,1DH
MOVAH,01H;Recievethechoice
INT21H
CMPAL,31H
JLERROR
CMPAL.35H
JGERROR
ANDAX.00FH
LEABX.BASE
SHLAL.1;將人1,乘2,因?yàn)樘D(zhuǎn)表地址是dw類型的,
ADDBX.AX
JMPWORDPTR[BX]
;CMPAL,'1'
;JELTC;Choose1,lowercaselettertocapitalletter
;CMPAL,'2'
;JEFMV;Choose2,findthemaximumvalue
;CMPAL,'3'
;JESORTS;Choose3,sort
;CMPAL,'4'
;JESTM;Choose4,showcurrenttime
;CMPAL,'5'
;JEEXIT;Choose5,exittheprogram
ERROR:CMPAL.ODH;如果是回車的話,賦CR
JEMCR
MOV[WROCAP+23],AL;Otherchar
MOV[WROCAP+24];1
JMPD
MCR:MOVWORDPTR[WROCAP+23].'RC,
D:DISPS20,5,WROCAP;Showthewronginformation
JMPML
LTC:CALLLLTOCL
ISCONTINUELTC
FMV:CALLFMAXV
ISCONTINUEFMV
SORTS:CALLSORT
ISCONTINUESORTS
STM:CALLSHOWTIME
ISCONTINUESTM
EXIT:SCROLL0,0,0.24,79,0;清屏
MOVAH.4CH;Exit.
INT21H
LLTOCLPROC
REFLASHL:PREPMMENU1;顯示子菜單
CMPCL.O;假設(shè)輸入為空那么跳轉(zhuǎn)至REDO
JEREFLASHL
LL1:MOVAL,[SI]
CMPAL,'a'
JBMTOB;NOCHANGE
CMPAL,'z'
JAMTOB
SUBAL,20H;Convert
MTOB:MOV[DI],AL
INCSI
INCDI
LOOPLL1
MOVBYTEPTR[Dl],'$'
DISPS10,2,OUTCAP
DISPS10,17,OUTBUF
RET
LLTOCLENDP
FMAXVPROC
PUSHBX
REFLASHF:PREPMMENU2;顯示子菜單
CMPCL,0;假設(shè)輸入為空那么跳轉(zhuǎn)至REDO
JEREFLASHF
MOVAL,0
FL1:CMPAL,[SI]
JANEXT
MOVAL,[SI]
NEXT:INCSI
LOOPFL1
MOV[MAXCAP+26],AL
DISPS10,2,MAXCAP
POPBX
RET
FMAXVENDP
SORTPROC
PREPMMENU3;顯示子菜單標(biāo)題(T),輸入提示信息等
DECCX
ADDSI.CX
MOVBYTEPTR[Sl+1],'$'
LP1:PUSHCX
PUSHSI
LP2:
MOVAL,[SI]
CMPAL,[SI-1]
JBENOXCHG
XCHGAL,[SI-1]
MOV[SI],AL
NOXCHG:DECSI
LOOPLP2
POPSI
POPCX
LOOPLP1
DISPS10,2,OUTCAP
DISPS10,17,INBUF[2];顯示排序結(jié)果
RET
SORTENDP
SHOWTIMEPROC
SCROLL21,2,0,22,79,OFH清屏,內(nèi)窗
DISPS3,20,MMENU4
DISPS5,25,TIMESETC
DISPS7,15,TIMESETF
SHOW:MOVSI,0
MOVBL.1OO
DIVBL
MOVAH,2CH;GETTIME
INT21H
MOVAL.CH;HOUR
CALLBCDASC;要轉(zhuǎn)換的在AL中
INCSI
MOVAL,CL;MINUTE
CALLBCDASC
INCSI
MOVAL.DH
CALLBCDASC;要轉(zhuǎn)換的在AL中
MOVBP.OFFSETTIME;使用int10H的13H號(hào)功能,在Teletype模式下顯示字符串(3P為地址)
MOVDX,0A22H;DX為行列(DH,DL)
MOVCX,8;CX為顯示字符串長(zhǎng)度
MOVBX.004EH;BH:頁碼,BL:屬性
MOVAX.1301H;AL:顯示輸出方式,1—字符串中只含顯示字符,顯示后,光標(biāo)位置改變
INT10H
MOVAH.02H;設(shè)置光標(biāo)位置
MOVDX,0A22H
MOVBH,0
INT10H
MOVBX.0018H;延時(shí)用(外層),假設(shè)不延時(shí),光標(biāo)會(huì)在時(shí)間左右來回跑!
RE:MOVCX.OFFFFH
REA:LOOPREA
DECBX
JNZRE
MOVAH.01H;檢測(cè)是否有字符輸入,ZF=1:無
INT16H
JESHOW
CALLSETTIME;設(shè)置時(shí)間子程序
RET
SHOWTIMEENDP
SETTIMEPROC
PUSHDX
MOVAH,OAH;輸入時(shí)間串
LEADX,INBUF
INT21H
CMPINBUF[1],0
JENODAT
MOVBL,10
MOVAL,INBUF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年橋梁施工質(zhì)量控制中的常見問題及解決方案
- 2026年處于變革中的電氣設(shè)計(jì)展望
- 賀銀成執(zhí)業(yè)課件價(jià)格
- 2026春招:西藏航空題庫及答案
- 貨運(yùn)車輛安全培訓(xùn)記錄課件
- 貨運(yùn)物流安全常識(shí)培訓(xùn)總結(jié)課件
- 急危重癥護(hù)理技巧解析
- 貨架展示包裝培訓(xùn)課件
- 2026年貴州裝備制造職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試備考題庫帶答案解析
- 中西醫(yī)結(jié)合診療案例總結(jié)
- 16.迷你中線導(dǎo)管帶教計(jì)劃
- 菏澤風(fēng)電項(xiàng)目可行性研究報(bào)告
- T/CCMA 0114-2021履帶式升降工作平臺(tái)
- DB32T 5124.1-2025 臨床護(hù)理技術(shù)規(guī)范 第1部分:成人危重癥患者目標(biāo)溫度管理
- 專題13 三角函數(shù)中的最值模型之胡不歸模型(原卷版)
- 職高高二語文試卷及答案分析
- 2025屆江蘇省南通市高三下學(xué)期3月二?;瘜W(xué)試題(含答案)
- 班主任安全管理分享會(huì)
- 消防救援預(yù)防職務(wù)犯罪
- 畢業(yè)論文答辯的技巧有哪些
- 酒店安全風(fēng)險(xiǎn)分級(jí)管控和隱患排查雙重預(yù)防
評(píng)論
0/150
提交評(píng)論