CPU與匯編上機(jī)考試題目及代碼_第1頁
CPU與匯編上機(jī)考試題目及代碼_第2頁
CPU與匯編上機(jī)考試題目及代碼_第3頁
CPU與匯編上機(jī)考試題目及代碼_第4頁
CPU與匯編上機(jī)考試題目及代碼_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

目錄

1、請任意輸入一個字符串,將該串倒序后在屏幕上顯示。...........................2

2、請任意輸入一個字符串,統(tǒng)計其中空格和A的個數(shù),并將結(jié)果顯示在屏幕上。.....3

3、請任意輸入一個字符串,將其中的空格全部刪除,并將結(jié)果顯示在屏幕上。........5

4、請任意輸入一個字符串,將其中A換成CC,并將結(jié)果顯示在屏幕上。.............6

5、請任意輸入一個字符串,將其中大寫字母換成小寫字母,并將結(jié)果顯示在屏幕上。..…8

6、請任意輸入一個字符串,將其中的英文字母全部刪除,并將結(jié)果顯示在屏幕上?!?…10

7>現(xiàn)有一組字符串為data,name,time,file,code,path,user,exit,quit,text,請編寫程序從鍵盤輸入

4個字符的字符串,若存在將其修改為disk,并將結(jié)果在顯示器上顯示。..............11

8、現(xiàn)有一組字符串為ram,yes,red,the,get,for,and,key,not,may,請編寫程序?qū)⑺麄儼碅SCII大

小排序,并在顯示器上顯示。.....................................................14

9^現(xiàn)有一組字符串為data,name,time,file,code,path,user,exit,quit,text,請編寫程序從鍵盤輸入

4個字符的字符串,若存在將其刪除,并在顯示器上顯示。...........................16

10、現(xiàn)有一組字符串為data,name,time,file,code,path,user,exit,quit,text,請編寫程序?qū)⑸鲜鲎?/p>

符串排序(升序)并插入disk使其人仍然有序,并在顯示器上顯示。.................18

11、鍵盤輸入一個十進(jìn)制數(shù)(字類型),以十六進(jìn)制的形式輸出。....................22

12、鍵盤輸入一個十進(jìn)制數(shù)(字類型),以二進(jìn)制的形式輸出。......................24

13、鍵盤輸入一個二進(jìn)制數(shù)(字類型),以十六進(jìn)制的形式輸出。....................25

14、鍵盤輸入一個二進(jìn)制數(shù)(字類型),以十進(jìn)制的形式輸出。......................27

15、鍵盤輸入一個十六進(jìn)制數(shù)(字類型),以十進(jìn)制的形式輸出。....................29

16、鍵盤輸入一個十六進(jìn)制數(shù)(字類型),以二進(jìn)制的形式輸出。....................31

17、將一組有符號數(shù)中的負(fù)數(shù)求和,并統(tǒng)計負(fù)數(shù)的個數(shù),并在屏幕上以十進(jìn)制的形式顯示結(jié)

果。............................................................................33

18、鍵盤輸入十個數(shù),分別統(tǒng)計0到9,10到99,100以上的數(shù)的個數(shù),并顯示結(jié)果。.35

19、鍵盤輸入兩組數(shù)743216、527864,按BCD碼求和,并將結(jié)果顯示在屏幕上。.....36

20、鍵盤輸入下列兩組十進(jìn)制數(shù),求其和,并將結(jié)果顯示在屏幕上..................38

21、鍵盤輸入一串二進(jìn)制數(shù)lah,7ch,Obah,3ah,45h,63h求其和,并將結(jié)果顯示在屏

幕上。.........................................................................40

22、從鍵盤輸入串可顯示字符(以回車符結(jié)束),并按字母、數(shù)字、空格分類計數(shù),然后

顯示出這三類統(tǒng)計的結(jié)果。.......................................................42

23、編寫程序,將十個字的有符號數(shù)中最大、最小值求出,并在顯示器上輸出。......44

24、鍵盤輸入10個字節(jié)數(shù)(無符號數(shù)),求出最大、最小值,并在顯示器上輸出。47

25、一個有符號字?jǐn)?shù)組以0為結(jié)束標(biāo)志,編程求這個數(shù)組的最大值、最小值、平均值。.50

26、在BUFFER中定義了的十個帶符號字,將其中的負(fù)數(shù)變成絕對值,并以十進(jìn)制方式輸

出。...........................................................................56

27、已知數(shù)組A包含20個互不相等的字型整數(shù),數(shù)組B包含30個互不相等的字型整數(shù),

試編制一程序把在A中而不在B中出現(xiàn)的整數(shù)放于數(shù)組C中。......................58

28、已知數(shù)組A包含20個互不相等的字型整數(shù),數(shù)組B包含30個互不相等的字型整數(shù),

試編制一程序把既在A中又在B中出現(xiàn)的數(shù)存放于數(shù)組C中。......................62

29、設(shè)有4個學(xué)生參加5門考試,請計算每個學(xué)生的平均成績和每門課的平均分成績,并在

顯示器上顯示,輸出格式如下:..................................................67

Chglchg2chg3chg4chg5meam.....................................................................................67

SI78855510097.....................................................................................67

S26796437984..........................................67

S39255769265..........................................67

S44395828975..........................................67

Aver............................................................................67

不計小數(shù)。.....................................................................67

30、編程計算從2開始的N(N<50)個偶數(shù)之和(2+4+6+...),主程序從鍵盤輸入整數(shù)N,

調(diào)用子程序求出N個偶數(shù)之和,由主程序顯示結(jié)果。嘗試分別使用以下3種方法編寫完整

程序。.........................................................................69

(1)利用寄存器傳遞參數(shù)........................................................69

(2)利用公共數(shù)據(jù)段變量傳遞參數(shù)................................................69

(3)利用堆棧傳遞參數(shù)..........................................................69

31、多模塊程序設(shè)計.............................................................72

(1)設(shè)計一個包括:鍵盤輸入、顯示、排序、轉(zhuǎn)換、退出程序的主菜單。(2)從鍵盤輸入

10個字型帶符號數(shù).(3)把10個帶符號十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)。(4)把10個二進(jìn)制數(shù)

按從小到大順序排列。(5)把10個帶符號二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)。(6)把最大數(shù)用十進(jìn)

制數(shù)的形式顯示在屏幕上要求:(1)整個程序用四個模塊組成:主菜單,排序子模塊,轉(zhuǎn)換

子模塊,其它。(2)鍵盤輸入與顯示功能分別用宏指令實(shí)現(xiàn)。(3)排序及轉(zhuǎn)換功能分別用子

程序?qū)崿F(xiàn)。......................................................................72

32、將兩個磁盤文件合并成一個新的文件。........................................72

33、將一磁盤文件F.TXT'讀入內(nèi)存2000:OOOOh中,并將文件以反序形式(頭尾對應(yīng)字

符互換)仍以相同路徑存入磁盤中。...............................................74

34、在多模塊設(shè)計中,主模塊中調(diào)用內(nèi)部模塊BUF1,BUF2,BUF3,BUF4。主模塊根據(jù)鍵

盤輸入的指令(如:A,B,C,D)調(diào)用上述對應(yīng)的子程序,每個子程序的任務(wù)是顯示其入口地

址。調(diào)用后繼續(xù)等待調(diào)用,若輸入ESC鍵(ASCII碼為1BH)則結(jié)束程序的執(zhí)行。請編寫

完成該任務(wù)的程序。.............................................................75

35、現(xiàn)有一控制程序共5個工序,要求輸入0-4的序號,分別執(zhí)行各工序的子程序,每個子

程序的任務(wù)是顯示其入口地址。調(diào)用后繼續(xù)等待調(diào)用,按回車則結(jié)束程序的執(zhí)行。………77

36、從鍵盤輸入一個兩位卜進(jìn)制數(shù)的月份,然后顯示出相應(yīng)的英文名,要求顯示月份的功能

用子程序?qū)崿F(xiàn)。.................................................................80

37、現(xiàn)有一組參量按16位編碼,各字段的長度如下:BIT1=6,BIT2=4,BIT3=3,BIT4=3,

BIT1位于高位,BIT4位于低位。設(shè)BIT1=52,BIT2=13,BIT3=5,BIT4=3請用程序編

碼將這些字段編碼組合成一個字,按二進(jìn)制的形式在屏幕上輸出。...................83

1、請任意輸入?個字符串,將該串倒序后在屏幕上顯示。

DATASSEGMENT

BUFDB30

DB?

DB30DUP(?)

BUF1DBODH,OAH,30DUP(?)

DATASENDS

CODESSEGMENT

ASSUMECS:CODES,DS:DATAS

START:

MOVAX,DATAS

MOVDS,AX

LEADX,BUF

MOVAH,OAH

INT21H

LEASI,BUF+2

LEADI,BUF1

ADDDI,2

MOVBL,BUF+1

XORBH,BH

ADDSI,BX

MOVCL,BUF+1

AGAIN:

DECSI

MOVAL,[SI]

MOV[DI],AL

INCDI

LOOPAGAIN

MOVBYTEPTR[DI],'$'

LEADX,BUF1

MOVAH,09H

INT21H

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

2、請任意輸入一個字符串,統(tǒng)計其中空格和A的個數(shù),并將結(jié)果顯示在屏幕上。

DATASEGMENT

BUFDBOFFH

DB?

DBOFFHDUP(?)

STROUTDBODH,OAH,'A=000'

DBODH,OAH,'SPACE=OOO','

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,BUF

MOVAH,OAH

INT21H

LEASI,BUF[2]

MOVCL,BUF[1]

XORCH,CH

AGAIN:

CMPBYTEPTR[SI],'A'

JNENOTA

CMPSTROUT[10],'9'

JEATEN

INCSTROUT[10]

JMPNEXT

ATEN:

CMPSTR0UT[9],'9'

JEAHUN

MOVSTR0UT[10],,0,

INCSTROUT[9]

JMPNEXT

AHUN:

MOVSTROUT[10],'O'

MOVSTROUT[9],'0)

INCSTROUT[8]

JMPNEXT

NOTA:

CMPBYTEPTR[SI],''

JNENOTSPACE

CMPSTROUT[21],'9'

JESPACETEN

INCSTROUT[21]

JMPNEXT

SPACETEN:

CMPSTROUT[20],'9'

JESPACEHUN

MOVSTROUT[21],'O'

INCSTROUT[20]

JMPNEXT

SPACEHUN:

MOVSTROUT[21],'O'

MOVSTR0UT[20],'0'

INCSTROUT[19]

NOTSPACE:

NEXT:

INCSI

LOOPAGAIN

LEADX,STROUT

MOVAH,09H

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

3、請任意輸入一個字符串,將其中的空格全部刪除,并將結(jié)果顯示在屏幕上。

DATASSEGMENT

BUFDB50

DB?

DB50DUP(?)

POSITIONDB1

NEWLINEDBOAH,ODH,'$'

DATASENDS

STACKSSEGMENT

SAVEDW100DUP(?)

STACKSENDS

CODESSEGMENT

ASSUMECS:CODES,DS:DATAS

START:

MOVAX,DATAS

MOVDS,AX

LEADX,BUF

MOVAH,OAH

INT21H

LEASI,BUF+2

MOVCL,BUF+1

XORCH,CH

NEXT:

MOVAL,[SI]

CMPAL,''

JEDELATE

INCPOSITION

INCSI

DECCX

CMPCX,0

JNENEXT

JMPOUTPUT

DELATE:

PUSHSI

PUSHCX

PUSHAX

MOVAX,SI

INCAX

MOVDI,AX

MOVAL,POSITION

MOVCL,BUF+1

SUBCL,AL

XORCH,CH

AGAIN:

MOVAL,[DI]

MOV[SI],AL

INCSI

INCDI

LOOPAGAIN

POPAX

POPCX

POPSI

DECCX

JMPNEXT

OUTPUT:

MOVAL,'$'

MOV[SI],AL

LEADX,NEWLINE

MOVAH,09H

INT21H

LEADX,BUF+2

MOVAH,09H

INT21H

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

4、請任意輸入?個字符串,將其中A換成CC,并將結(jié)果顯示在屏幕上。

DATASSEGMENT

BUFDB50

DB?

DB50DUP(?)

DATASENDS

STACKSSEGMENT

SAVEDB100DUP(?)

STACKSENDS

CODESSEGMENT

ASSUMECS:CODES,DS:DATAS,SS:STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVAX,STACKS

MOVSS,AX

LEADX,BUF

MOVAH,OAH

INT21H

LEASI,BUF+2

MOVCL,BUF+1

XORCH,CH

NEXT:

MOVAL,[SI]

CMPAL,'A'

JEMOVE

INCSI

DECCX

CMPCX,0

JNENEXT

JMPOUTPUT

MOVE:

PUSHSI

PUSHCX

MOVBX,SI

LEASI,BUF+2

MOVAL,BUF+1

XORAH,AH

ADDSI,AX

MOVAX,SI

INCAX

MOVDI,AX

DECAX

SUBAX,BX

MOVCX,AX

AGAIN:

MOVAL,[SI]

MOV[DI],AL

DECSI

DECDI

LOOPAGAIN

POPCX

POPSI

JMPTIHUAN

TIHUAN:

MOVAL,'C'

MOV[SI],AL

MOV[SI+1],AL

INCBUF+1

INCSI

INCSI

DECCX

CMPCX,0

JNENEXT

JMPOUTPUT

OUTPUT:

MOVAL,'$'

MOV[SI],AL

MOVDL,OAH

MOVAH,02H

INT21H

MOVDL,ODH

MOVAH,02H

INT21H

LEADX,BUF+2

MOVAH,09H

INT21H

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

5、請任意輸入一個字符串,將其中大寫字母換成小寫字母,并將結(jié)果顯示在屏

幕上。

DATASSEGMENT

BUFDB30

DB?

DB30DUP(?)

DATASENDS

CODESSEGMENT

ASSUMECS:CODES,DS:DATAS

START:

MOVAX,DATAS

MOVDS,AX

LEADX,BUF

MOVAH,OAH

INT21H

LEASI,BUF+2

MOVCL,BUF+1

NEXT:

MOVAL,[SI]

CMPAL,*A'

JBCONTINUE

CMPAL,'Z'

JBETIHUAN

JMPCONTINUE

TIHUAN:

ADDAL,20H

MOV[SI],AL

CONTINUE:

INCSI

DECCX

CMPCX,0

JZOUTPUT

JMPNEXT

OUTPUT:

MOVAL,'$'

MOV[SI],AL

MOVDL,OAH

MOVAH,02H

INT21H

MOVDL,ODH

MOVAH,02H

INT21H

LEADX,BUF+2

MOVAH,09H

INT21H

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

6、請任意輸入?個字符串,將其中的英文字母全部刪除,并將結(jié)果顯示在屏幕

±0

DATASSEGMENT

BUFDB50

DB?

DB50DUP(?)

DATASENDS

STACKSSEGMENT

SAVEDB100DUP(?)

STACKSENDS

CODESSEGMENT

ASSUMECS:CODES,DS:DATAS,SS:STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVAX,STACKS

MOVSS,AX

LEADX,BUF

MOVAH,OAH

INT21H

LEASI,BUF+2

MOVCL,BUF+1

XORCH,CH

NEXT:

MOVAL,[SI]

CMPAL,'A'

JBNEXT1

CMPAL,'Z'

JBEDELATE

CMPAL,'a'

JBNEXT1

CMPAL,'z'

JBEDELATE

NEXT1:

DECCX

INCSI

CMPCX,0

JZOUTPUT

JMPNEXT

DELATE:

PUSHSI

PUSHCX

CMPCX,1

JEOUTPUT

MOVAX,SI

INCAX

MOVDI,AX

AGAIN:

MOVAL,[DI]

MOV[SI],AL

INCSI

INCDI

LOOPAGAIN

POPCX

POPSI

DECBUF+1

DECCX

JMPNEXT

OUTPUT:

MOVAL,'$'

MOV[SI],AL

MOVDL,OAH

MOVAH,O2H

INT21H

MOVDL,ODH

MOVAH,02H

INT21H

LEADX,BUF+2

MOVAH,09H

INT21H

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

7、現(xiàn)有一組字符串為data,name,time,file,code,path,user,exit,quit,text,請編寫程序

四鍵盤輸入4個字符的字符串,若存在將其修改為disk,并將結(jié)果在顯示器上顯

/J''o

DATASSEGMENT

STRINGODBdata),OAH,ODH

STRING1DBname),OAH,ODH

STRING2DBtime),OAH,ODH

STRINGSDBfile),OAH,ODH

STRING4DBcode),OAH,ODH

STRINGS:DB'path',OAH,ODH

STRING6DB'user',OAH,ODH

STRING7DB'exit',0AH,ODH

STRINGS:DB'quit",OAH,ODH

STRING9D:B'text",'

BUFDB5

DB?

DB5DUP(?)

DATASENDS

EXTRASEGMENT

STRINGDB7DUP(?)

EXTRAENDS

CODESSEGMENT

ASSUMECS:CODES,DS:DATAS,ES:EXTRA

START:

MOVAX,DATAS

MOVDS,AX

MOVAX,EXTRA

MOVES,AX

LEADX,BUF

MOVAH,OAH

INT21H

LEASI,BUF+2

LEADI,STRING

MOVCX,4

REPMOVSB

LEASI,STRINGO

LEADI,STRING

CLD

MOVCX,4

REPECMPSB

CMPCX,0

JETIHUAN

LEASI,STRING1

LEADI,STRING

CLD

MOVCX,4

REPECMPSB

CMPCX,0

JETIHUAN

LEASI,STRING2

LEADI,STRING

CLD

MOVCX,4

REPECMPSB

CMPCX,0

JETIHUAN

LEASI,STRINGS

LEADI,STRING

CLD

MOVCX,4

REPECMPSB

CMPCX,0

JETIHUAN

LEASI,STRING4

LEADI,STRING

CLD

MOVCX,4

REPECMPSB

CMPCX,0

JETIHUAN

LEASI,STRINGS

LEADI,STRING

CLD

MOVCX,4

REPECMPSB

CMPCX,0

JETIHUAN

LEASI,STRING6

LEADI,STRING

CLD

MOVCX,4

REPECMPSB

CMPCX,0

JETIHUAN

LEASI,STRING7

LEADI,STRING

CLD

MOVCX,4

REPECMPSB

CMPCX,0

JETIHUAN

LEASI,STRING8

LEADI,STRING

CLD

MOVCX,4

REPECMPSB

CMPCX,0

JETIHUAN

LEASI,STRING9

LEADI,STRING

CLD

MOVCX,4

REPECMPSB

CMPCX,0

JETIHUAN

JMPSHUCHU

TIHUAN:

SUBSI,4

MOVAL,'d'

MOV[SI],AL

MOVAL,'i'

MOV[SI+1],AL

MOVAL,'s'

MOV[SI+2],AL

MOVAL,'k'

MOV[SI+3],AL

SHUCHU:

LEADX,STRINGO

MOVAH,09H

INT21H

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

8、現(xiàn)有一組字符串為ram,yes,red,the,get,for,and,key,not,may,請編寫程序?qū)⑺麄?/p>

按ASCII大小排序,并在顯示器上顯示。

DATASSEGMENT

STRODB'ram',OAH,ODH

STR1DB'yes",OAH,ODH

STR2DB'red",OAH,ODH

STR3DB'the',OAH,ODH

STR4DB'get',OAH,ODH

STR5DB'for,OAH,ODH

STR6DB'and',OAH,ODH

STR7DB'key',OAH,ODH

STR8DB'not',OAH,ODH

STR9DB'may$'

DATASENDS

STACKSSEGMENT

SAVEDB100DUP(?)

STACKSENDS

CODESSEGMENT

ASSUMECS:CODES,DS:DATAS,SS:STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVAX,STACKS

MOVSS,AX

LEASI,STRO

LEADI,STR1

MOVCX,9

AGAIN1:

PUSHCX

PUSHSI

PUSHDI

AGAIN:

MOVAL,[SI]

MOVBL,[DI]

CMPAL,BL

JACHANGE

JEEQUEL1

NEXT:

ADDSI,5

ADDDI,5

LOOPAGAIN

POPDI

POPSI

POPCX

LOOPAGAIN1

JMPOUTPUT

EQUEL1:

MOVAL,[SI+1]

MOVBL,[DI+1]

CMPAL,BL

JACHANGE

JEEQUEL2

JMPNEXT

EQUEL2:

MOVAL,[SI+2]

MOVBL,[DI+2]

CMPAL,BL

JACHANGE

JENEXT

CHANGE:

MOVAL,[SI]

MOVBL,[DI]

MOV[SI],BL

MOV[DI],AL

MOVAL,[SI+1]

MOVBL,[DI+1]

MOV[SI+1],BL

MOV[DI+1],AL

MOVAL,[SI+2]

MOVBL,[DI+2]

MOV[SI+2],BL

MOV[DI+2],AL

JMPNEXT

OUTPUT:

LEADX,STRO

MOVAH,09H

INT21H

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

9、現(xiàn)有一組字符串為data,name,time,file,code,path,user,exit,quit,text,請編寫程序

從鍵盤輸入4個字符的字符串,若存在將其刪除,并在顯示器上顯示。

DATASSEGMENT

STRODB'data',OAH,ODH

STR1DB'name",OAH,ODH

STR2DB'time'.OAH,ODH

STR3DB'file\OAH,ODH

STR4DB'code',OAH,ODH

STR5DB'path",OAH,ODH

STR6DB'user',OAH,ODH

STR7DB'exit',0AH,ODH

STR8DB'quit',OAH,ODH

STR9DB'text',OAH,ODH,'$'

LEAGTHEQU$-STRO

BUFDB5

DB?

DB5DUP(?)

DATASENDS

EXTRASEGMENT

COPYDB5DUP(?)

EXTRAENDS

STACKSSEGMENT

SAVEDB100DUP(?)

STACKSENDS

CODESSEGMENT

ASSUMECS:CODES,DS:DATAS,SS:STACKS,ES:EXTRA

START:

MOVAX,DATAS

MOVDS,AX

MOVAX,EXTRA

MOVES,AX

MOVAX,STACKS

MOVSS,AX

LEADX,BUF

MOVAH,OAH

INT21H

LEASI,BUF+2

LEADI,COPY

MOVCL,BUF+1

XORCH,CH

CLD

REPMOVSB

LEASI,STRO

LEADI,COPY

MOVCX,OAH

NEXT:

PUSHCX

CMPCX,1

JZTEXT

MOVCL,BUF+1

XORCH,CH

CLD

REPECMPSB

CMPCX,0

JZDELATE

ADDSI,5

DECDI

POPex

DECCX

CMPCX,0

JNENEXT

JMPOUTPUT

DELATE:

MOVCL,LEAGTH

XORCH,CH

ADDSI,2

SUBCX,SI

MOVAX,SI

SUBAX,6

MOVDI,AX

AGAIN1:

MOVAL,[SI]

MOV[DI],AL

INCSI

INCDI

LOOPAGAIN1

JMPOUTPUT

TEXT:

MOVAL,'$'

MOV[SI-1],AL

OUTPUT:

LEADX,STRO

MOVAH,09H

INT21H

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

1O>現(xiàn)有一組字符串為data,name,time,file,code,path,user,exit,quit,text,請編寫程

序?qū)⑸鲜鲎址判颍ㄉ颍┎⒉迦雂isk使其人仍然有序,并在顯示器上顯示。

DATASSEGMENT

STRODB'data,OAH,ODH

STR1DB'name',OAH,ODH

STR2DB'time',OAH,ODH

STR3DB'file".OAH,ODH

STR4DB'code",OAH,ODH

STR5DB'path',OAH,ODH

STR6DB'user",OAH,ODH

STR7DB'exit'.OAH,ODH

STR8DB*quit*,OAH,ODH

STR9DB'text',OAH,ODH

STR10DB'$$$$$$$'

LEAGTHEQU$-STRO

BUFDB5

DB?

DB5DUP(?)

DATASENDS

STACKSSEGMENT

SAVEDB100DUP(?)

STACKSENDS

CODESSEGMENT

ASSUMECS:CODES,DS:DATAS,SS:STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVAX,STACKS

MOVSS,AX

LEASI,STRO

LEADI.STR1

MOVCX,9

AGAIN1:

PUSHCX

PUSHSI

PUSHDI

AGAIN:

MOVAL,[SI]

MOVBL,[DI]

CMPAL,BL

JACHANGE

JEEQUEL1

NEXT:

ADDSI,6

ADDDI,6

LOOPAGAIN

POPDI

POPSI

POPCX

LOOPAGAIN1

JMPOUTPUT

EQUEL1:

MOVAL,[SI+1]

MOVBL,[DI+1]

CMPAL,BL

JACHANGE

JEEQUEL2

JMPNEXT

EQUEL2:

MOVAL,[SI+2]

MOVBL,[DI+2]

CMPAL,BL

JACHANGE

JEEQUEL3

JMPNEXT

EQUEL3:

MOVAL,[SI+3]

MOVBL,[DI+3]

CMPAL,BL

JACHANGE

JENEXT

CHANGE:

MOVAL,[SI]

MOVBL,[DI]

MOV[SI],BL

MOV[DI],AL

MOVAL,[SI+1]

MOVBL,[DI+1]

MOV[SI+1],BL

MOV[DI+1],AL

MOVAL,[SI+2]

MOVBL,[DI+2]

MOV[SI+2],BL

MOV[DI+2],AL

MOVAL,[SI+3]

MOVBL,[DI+3]

MOV[SI+3],BL

MOV[DI+3],AL

JMPNEXT

OUTPUT:

LEADX,STRO

MOVAH,09H

INT21H

LEADX,BUF

MOVAH,OAH

INT21H

MOVDL,OAH

MOVAH,O2H

INT21H

MOVDL,ODH

MOVAH,02H

INT21H

LEASI,STRO

LEADI,BUF+2

MOVCX,OAH

CONTINUE:

MOVAL,[SI]

MOVBL,[DI]

CMPAL,BL

JEEQUAL

JAINSERT

ADDSI,6

DECCX

CMPCX,0

JNZCONTINUE

JMPLAST

EQUAL:

MOVAL,[SI+1]

MOVBL,[DI+1]

CMPAL,BL

JAINSERT

ADDSI,6

DECCX

CMPCX,0

JNZCONTINUE

JMPLAST

INSERT:

MOVCX,LEAGTH

MOVDI,CX

DECDI

DECDI

SUBCX,SI

SUBCX,7

MOVAX,DI

SUBAX,6

MOVSI,AX

AGAIN2:

MOVAL,[SI]

MOV[DI],AL

DECSI

DECDI

LOOPAGAIN2

MOVCX,4

INCSI

LEADI,BUF+2

JMPAGAIN3

LAST:

MOVCX,4

LEADI,BUF+2

AGAIN3:

MOVAL,[DI]

MOV[SI],AL

INCSI

INCDI

LOOPAGAIN3

LEADX,STRO

MOVAH,09H

INT21H

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

11、鍵盤輸入?個十進(jìn)制數(shù)(字類型),以十六進(jìn)制的形式輸出。

CODESSEGMENT

ASSUMECS:CODES

START:

NEXT:

MOVBX,0

CALLINPUT

CALLOUTPUT

JMPNEXT

INPUTPROCNEAR

SHURU:

MOVAH,01H

INT21H

CBW

CMPAX,ODH

JERETURN

CMPAX,'O'

JBEXIT

CMPAX,'9'

JAEXIT

CALLTRANSFORM

JMPSHURU

RETURN:

RET

INPUTENDP

TRANSFORMPROCNEAR

XCHGAX,BX

SUBBX,30H

MOVCX,10

MULCX

ADDAX,BX

XCHGAX,BX

RET

TRANSFORMENDP

OUTPUTPROCNEAR

MOVDH,4

MOVCL,4

CONTINUE:

ROLBX,CL

MOVAL,BL

ANDAL,OFH

CMPAL,9

JAZIMU

ADDAL,30H

JMPSHUCHU

ZIMU:

ADDAL,37H

SHUCHU:

MOVDL,AL

MOVAH,02H

INT21H

DECDH

CMPDH,0

JNECONTINUE

MOVDL,OAH

MOVAH,02H

INT21H

MOVDL,ODH

MOVAH,02H

INT21H

RET

OUTPUTENDP

EXIT:

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

12、鍵盤輸入一個十進(jìn)制數(shù)(字類型),以二進(jìn)制的形式輸出。

CODESSEGMENT

ASSUMECS:CODES

START:

NEXT:

MOVBX,0

CALLINPUT

CALLOUTPUT

JMPNEXT

INPUTPROCNEAR

SHURU:

MOVAH,01H

INT21H

CBW

CMPAX,ODH

JERETURN

CMPAX,'O'

JBEXIT

CMPAX,’9'

JAEXIT

CALLTRANSFORM

JMPSHURU

RETURN:

RET

INPUTENDP

TRANSFORMPROCNEAR

XCHGAX,BX

SUBBX,30H

MOVCL,10

MULCL

ADDAX,BX

XCHGAX,BX

RET

TRANSFORMENDP

OUTPUTPROCNEAR

MOVCX,16

CONTINUE:

ROLBX,1

MOVAL,BL

ANDAL,00000001H

ADDAL,30H

SHUCHU:

MOVDL,AL

MOVAH,02H

INT21H

DECCX

CMPCX,0

JNECONTINUE

MOVDL,OAH

MOVAH,02H

INT21H

MOVDL,ODH

MOVAH,02H

INT21H

RET

OUTPUTENDP

EXIT:

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

13、鍵盤輸入一個二進(jìn)制數(shù)(字類型),以十六進(jìn)制的形式輸出。

CODESSEGMENT

ASSUMECS:CODES

START:

NEXT:

MOVBX,0

CALLINPUT

CALLOUTPUT

JMPNEXT

INPUTPROCNEAR

SHURU:

MOVAH,O1H

INT21H

CBW

CMPAX,ODH

JERETURN

CMPAX,'O'

JBEXIT

CMPAX,*r

JAEXIT

CALLTRANSFORM

JMPSHURU

RETURN:

RET

INPUTENDP

TRANSFORMPROCNEAR

XCHGAX,BX

SUBBX,30H

MOVCX,2

MULCX

ADDAX,BX

XCHGAX,BX

RET

TRANSFORMENDP

OUTPUTPROCNEAR

MOVDH,4

MOVCL,4

CONTINUE:

ROLBX,CL

MOVAL,BL

ANDAL,OFH

CMPAL,9

JAZIMU

ADDAL,30H

JMPSHUCHU

ZIMU:

ADDAL,37H

SHUCHU:

MOVDL,AL

MOVAH,O2H

INT21H

DECDH

CMPDH,0

JNECONTINUE

MOVDL,OAH

MOVAH,02H

INT21H

MOVDL,ODH

MOVAH,02H

INT21H

RET

OUTPUTENDP

EXIT:

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

14、鍵盤輸入一個二進(jìn)制數(shù)(字類型),以十進(jìn)制的形式輸出。

CODESSEGMENT

ASSUMECS:CODES

START:

NEXT:

MOVBX,0

CALLINPUT

CALLOUTPUT

JMPNEXT

INPUTPROCNEAR

SHURU:

MOVAH,01H

INT21H

CBW

CMPAX,ODH

JERETURN

CMPAX,'0'

JBEXIT

CMPAX,(r

JAEXIT

CALLTRANSFORM

JMPSHURU

RETURN:

RET

INPUTENDP

TRANSFORMPROCNEAR

XCHGAX,BX

SUBBX,30H

MOVCX,2

MULCX

ADDAX,BX

XCHGAX,BX

RET

TRANSFORMENDP

OUTPUTPROCNEAR

MOVAX,BX

MOVCX,10000

MOVDX,0

DIVCX

MOVBX,DX

ADDAL,3OH

MOVDL,AL

MOVAH,02H

INT21H

MOVAX,BX

MOVCX,1000

MOVDX,0

DIVex

MOVBX,DX

ADDAL,30H

MOVDL,AL

MOVAH,02H

INT21H

MOVAX,BX

MOVCX,100

MOVDX,0

DIVex

MOVBX,DX

ADDAL,30H

MOVDL,AL

MOVAH,02H

INT21H

MOVAX,BX

MOVCX,10

MOVDX,0

DIVex

MOVBX,DX

ADDAL,30H

MOVDL,AL

MOVAH,02H

INT21H

MOVAX,BX

MOVCX,1

MOVDX,0

DIVex

MOVBX,DX

ADDAL,30H

MOVDL,AL

MOVAH,02H

INT21H

MOVDL,OAH

MOVAH,02H

INT21H

MOVDL,ODH

MOVAH,O2H

INT21H

RET

OUTPUTENDP

EXIT:

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

15、鍵盤輸入一個十六進(jìn)制數(shù)(字類型),以十進(jìn)制的形式輸出。

CODESSEGMENT

ASSUMECS:CODES

START:

NEXT:

MOVBX,0

CALLINPUT

CALLOUTPUT

JMPNEXT

INPUTPROCNEAR

SHURU:

MOVAH,01H

INT21H

CBW

CMPAX,ODH

JERETURN

CMPAX,'O'

JBEXIT

CMPAX,’9'

JAZIMU

JMPCHENGGONG

ZIMU:

CMPAX,'A'

JBEXIT

CMPAX,'F'

JAEXIT

CHENGGONG:

CALLTRANSFORM

JMPSHURU

RETURN:

RET

INPUTENDP

TRANSFORMPROCNEAR

CMPAX,39H

JBESHUZI

JMPZIMU1

SHUZI:

SUBAX,30H

JMPKAISHI

ZIMU1:

SUBAX,37H

KAISHI:

XCHGAX,BX

MOVCX,16

MULCX

ADDAX,BX

XCHGAX,BX

RET

TRANSFORMENDP

OUTPUTPROCNEAR

MOVAX,BX

MOVCX,10000

MOVDX,0

DIVCX

MOVBX,DX

ADDAL,30H

MOVDL,AL

MOVAH,02H

INT21H

MOVAX,BX

MOVCX,1000

MOVDX,0

DIVCX

MOVBX,DX

ADDAL,30H

MOVDL,AL

MOVAH,02H

INT21H

MOVAX,BX

MOVCX,100

MOVDX,0

DIVCX

MOVBX,DX

ADDAL,30H

MOVDL,AL

MOVAH,02H

INT21H

MOVAX,BX

MOVCX,10

MOVDX,0

DIVCX

MOVBX,DX

ADDAL,3OH

MOVDL,AL

MOVAH,02H

INT21H

MOVAX,BX

MOVCX,1

MOVDX,0

DIVCX

MOVBX,DX

ADDAL,30H

MOVDL,AL

MOVAH,02H

INT21H

MOVDL,OAH

MOVAH,02H

INT21H

MOVDL,ODH

MOVAH,02H

INT21H

RET

OUTPUTENDP

EXIT:

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

16、鍵盤輸入?個十六進(jìn)制數(shù)(字類型),以二進(jìn)制的形式輸出。

CODESSEGMENT

ASSUMECS:CODES

START:

NEXT:

MOVBX,0

CALLINPUT

CALLOUTPUT

JMPNEXT

INPUTPROCNEAR

SHURU:

MOVAH,O1H

INT21H

CBW

CMPAX,ODH

JERETURN

CMPAX,'O'

JBEXIT

CMPAX,'9'

JAZIMU

JMPCHENGGONG

ZIMU:

CMPAX,'A'

JBEXIT

CMPAX,'F'

JAEXIT

CHENGGONG:

CALLTRANSFORM

JMPSHURU

RETURN:

RET

INPUTENDP

TRANSFORMPROCNEAR

CMPAX,39H

JBESHUZI

JMPZIMU1

SHUZI:

SUBAX,30H

JMPKAISHI

ZIMU1:

SUBAX,37H

KAISHI:

XCHGAX,BX

MOVCX,16

MULCX

ADDAX,BX

XCHGAX,BX

RET

TRANSFORMENDP

OUTPUTP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論