微机原理实验带答案lab6000.docx
《微机原理实验带答案lab6000.docx》由会员分享,可在线阅读,更多相关《微机原理实验带答案lab6000.docx(12页珍藏版)》请在冰豆网上搜索。
微机原理实验带答案lab6000
#make_COM#
;COMfileisloadedatCS:
0100h
ORG100h
;array
JMPSTART
ARRAYDB80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H
CHANGE:
MOVAL,ARRAY[BX]
INCBX
DECCX
JMPCOMPA
START:
MOVBX,0
MOVAL,ARRAY[BX]
MOVCX,5
COMPA:
CMPAL,ARRAY[BX]
JLCHANGE
INCBX
LOOPCOMPA
E1:
MOVBL,AL
MOVCX,2
ANDAL,0F0H
SHRAL,4
DECCX
CMPAL,9
JLESHU
JAZI
E2:
MOVAL,BL
ANDAL,0FH
DECCX
CMPAL,9
JLESHU
JAZI
CMPAL,9
DECCX
JLESHU
JAZI
SHU:
ADDAL,30H
JMPPRINT
ZI:
ADDAL,37H
JMPPRINT
PRINT:
MOVDL,AL
MOVAH,2
INT21H
JCXZE3
JMPE2
E3:
MOVDL,'H'
MOVAH,2
INT21H
MOVAH,4CH
INT21H
ENDSTART
#make_COM#
;COMfileisloadedatCS:
0100h
ORG100h
JMPSTART
STRINGDB'500H的BCD码是:
''$'
NUM1EQU500H
START:
MOVAX,NUM1
MOVCX,1000
DIVCX
XCHGAX,DX
SHLDX,4
MOVCL,100
DIVCL
ADDDL,AL
SHLDX,4
SHRAX,8
MOVCL,10
DIVCL
ADDDL,AL
SHLDX,4
ADDDL,AH
LEADX,STRING
MOVAH,9
INT21H
MOVAH,4CH
INT21H
ENDSTART
#make_COM#
;COMfileisloadedatCS:
0100h
ORG100h
JMPSTART
STRINGDB'THEASCIIOFBCD7693IS:
','$'
NUMDB4DUP(?
)
START:
LEADX,STRING
MOVAH,9
INT21H
MOVAX,7693
MOVCX,10
MOVBX,0
ACT:
MOVDX,0
DIVCX
PUSHAX
MOVNUM[BX],DL
CMPNUM[BX],9
JBEA1
ADDNUM[BX],37H
CHA:
INCBX
CMPBX,4
JAEACT2
JMPACT
A1:
ADDNUM[BX],30H
JMPCHA
ACT2:
MOVBX,3
A2:
MOVCL,16
MOVAL,NUM[BX]
MOVAH,0
DIVCL
DECBX
CMPBX,0FFFEH
JEEXIT
JMPSHOW
SHOW:
PUSHAX
ADDAL,30H
MOVDL,AL
MOVAH,2
INT21H
POPAX
ADDAH,30H
MOVDL,AH
MOVAH,2
INT21H
MOVDL,'H'
INT21H
MOVDL,''
INT21H
JMPA2
EXIT:
MOVAH,4CH
INT21H
ENDSTART
#make_COM#
;COMfileisloadedatCS:
0100h
ORG100h
JMPSTART
TR1DB100DUP(?
)
TR2DB100DUP(?
)
START:
MOVBX,0
MOVCX,100
F1:
MOVTR1[BX],88H
INCBX
LOOPF1
TRA:
LEASI,TR1
LEADI,TR2
MOVCX,100
MOVBX,0
F2:
LODSB
STOSB
INCBX
MOVAX,BX
MOVCL,16
DIVCL
PUSHAX
ADDAL,30H
MOVDL,AL
MOVAH,2
INT21H
POPAX
CMPAH,9
JBELI
JABI
HH:
MOVDX,'H'
MOVAH,2
INT21H
LOOPF2
LI:
ADDAH,30H
MOVDL,AH
MOVAH,2
INT21H
JMPHH
BI:
ADDAH,37H
MOVDL,AH
MOVAH,2
INT21H
JMPHH
ENDSTART
#make_COM#
;COMfileisloadedatCS:
0100h
ORG100h
#make_COM#
;COMfileisloadedatCS:
0100h
ORG100h
JMPSTART
STRING1DB'Pleaseenteralowercaseletters(a~z):
''$'
STRING2DB'Afterconversiontouppercaseis''$'
STRING3DB'wrong!
''$'
START:
LEAAX,STRING1
MOVDX,AX
MOVAH,9
INT21H
MOVAH,1
INT21H
CMPAL,'a'
JBWRONG
CMPAL,'z'
JAWRONG
PUSHAX
LEAAX,STRING2
MOVDX,AX
MOVAH,9
INT21H
POPAX
SUBAL,20H
MOVDL,AL
MOVAH,2
INT21H
HLT
WRONG:
LEAAX,STRING3
MOVDX,AX
MOVAH,9
INT21H
HLT
ENDSTART
#make_COM#
#make_COM#
;COMfileisloadedatCS:
0100h
ORG100h
JMPSTART
NUMDW4DUP(?
)
STRING1DB'PLEASEINPUT''$'
START:
LEADX,STRING1
MOVAH,9
INT21H
MOVBX,0
MOVDX,0
START1:
MOVBP,4
MOVDX,0
CONT:
MOVCL,4
SHLDX,CL
D1:
MOVAH,1
INT21H
CMPAL,'0'
JBD1
CMPAL,'F'
JAD1
CMPAL,'A'
JBA1
SUBAL,7
A1:
SUBAL,30H
MOVAH,0
ADDDX,AX
DECBP
JNZCONT
MOVNUM[BX],DX
ADDBX,2
CMPBX,4
JEXI
A2:
CMPBX,6
JBESTART1
MOVDL,'H'
MOVAH,2
INT21H
MOVDL,'='
INT21H
AD:
MOVBX,2
MOVAX,NUM[BX]
ADDBX,4
ADDAX,NUM[BX]
MOVNUM[BX],AX
MOVBX,0
MOVAX,NUM[BX]
ADDBX,4
ADCAX,NUM[BX]
MOVNUM[BX],AX
MOVCX,4
MOVAX,NUM[BX]
MOVBX,000FH
MOVSI,2
MOVCL,4
JMPSHOW
TWO:
MOVBX,6
MOVAX,NUM[BX]
MOVCL,4
JMPSHOW
XI:
MOVDL,'H'
MOVAH,2
INT21H
MOVDL,'+'
INT21H
JMPA2
SHOW:
ROLAX,4
MOVDX,AX
ANDDX,000FH
CMPDX,9
JBELL
JABB
SH:
PUSHAX
MOVDL,DL
MOVAH,2
INT21H
POPAX
LOOPSHOW
DECSI
JNZTWO
MOVDL,'H'
MOVAH,2
INT21H
MOVAH,4CH
INT21H
LL:
ADDDL,30H
JMPSH
BB:
ADDDL,37H
JMPSH
ENDSTART