微机原理与接口技术设计实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一:编写程序,比较两个字符串STRING1和STRING2所含的字符是否相同,若字符相同则显示“Match”,否则显示“NoMatch”
参考程序:
DATASEGMENT
STRING1DB'HAPPYASM'
LENEQU$-STRING1
STRING2DB'HAPPYASM'
MESSAGE1DB'MATCH',0DH,0AH,'$'
MESSAGE2DB'NOMATCH',0DH,0AH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEASI,STRING1
LEADI,STRING2MO
VCX,LEN
COMPARE:
MOVAL,[SI]
MOVBL,[DI]
CMPAL,BL
JNEDISMATCH
INCSI
INCDI
LOOPCOMPARE
MATCH:LEADX,MESSAGE1
JMPDISP
DISMATCH:LEADX,MESSAGE2
DISP:MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
实验二:编写程序,从键盘输入一串字符,以‘$’或回车结束,将其中的小写字母转变为大写字母,其余字符不做转换,原样输出,结果显示在屏幕上。
参考程序:
DATASEGMENT
BUFDB50
DB?
DB50DUP(?)
INPUTSTRINGDB'PLEASEINPUTASTRING:','$' OUTPUTSTRINGDB'OUTPUTSTRINGIS:','$' ENTERSTRINGDB0DH,0AH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:MOVAX,DATA
MOVDS,AX
LEADX,INPUTSTRING
MOVAH,09H
INT21H
LEADX,BUF
MOVAH,0AH
INT21H
LEADX,ENTERSTRING
MOVAH,09H
INT21H
LEABX,BUF
ADDBX,2
NEXT1:MOVAL,[BX]
INCBX
COMPARE:CMPAL,24H
JZDISPCMPAL
,61H
JBNEXT1
CMPAL,7AH
JANEXT1
SUBAL,20H
MOV[BX-1],AL
JMPNEXT1
DISP:LEADX,OUTPUTSTRING
MOVAH,09H
INT21H
LEADX,BUF+2
MOVAH,09H
INT21H
MOVAH,4CH
INT21HC
ODEENDS
ENDSTART
实验三:利用子程序方法编写程序,设有10个无符号数的字节序列,查找该序列中的最大值和最小值,并把结果显示在屏幕上。
参考程序1:(针对一位10进制数)
STACKSEGMENTSTACK
DW256DUP(?)TOPLA
BELWORD
STACKENDSDATASEGMENT
BUFDB00H,01H,02H,03H,04H
DB05H,06H,07H,08H,09H
COUNTEQU$-BUF
ENTERSTRINGDB0DH,0AH,'$'
MAXSTRINGDB'THEMAXIMUNNUMBERIS:','$'
MINSTRINGDB'THEMINIMUNNUMBERIS:','$'
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,SS:STACK
START:MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
LEASP,TOP
MOVSI,OFFSETBUF
MOVCX,COUNT
CALLBRANCH
PUSHAX
LEADX,MAXSTRING
MOVAH,09H
INT21H
POPAXMOVDL,
AH
ADDDL,30H
PUSHAX
MOVAH,02H
INT21H
LEADX,ENTERSTRING
MOVAH,09H
INT21H
LEADX,MINSTRING
MOVAH,09H
INT21H
POPAX
MOVDL,ALADDD
L,30H
MOVAH,02HINT
21H
MOVAH,4CH
INT21H
BRANCHPROCNEAR
JCXZNEXT4
PUSHSI
PUSHCX
PUSHBX
MOVBH,[SI]
MOVBL,BH
CLD
NEXT1:LODSB
CMPAL,BHJBE
NEXT2
MOVBH,ALJMP
NEXT3
NEXT2:CMPAL,BL
JAENEXT3
MOVBL,AL
NEXT3:LOOPNEXT1
MOVAX,BX
POPBX
POPCX
POPSIN
EXT4:RET
BRANCHENDP
CODEENDS
ENDSTART
参考程序二:(针对两位十六进制数或无符号数)