微机原理实验报告(江苏大学)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理课程设计报告
专业:
学号:
姓名:
一:课程设计目的
结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对微型计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。学会使用命令调用DOS观察程序运行结果,学会使用汇编语言编写程序,弄懂汇编程序的执行过程,弄懂汇编程序的上机过程以及如何运用MASM软件进行汇编程序的调试。
二:设计内容
1.字符串匹配设计
为掌握提示信息的设置方法及读取键入信息的方法,编写程序实现两个字符串比较,如相同则显示“MATCH”,否则显示“NO MATCH”。
详细源程序如下:
CRLF MACRO
MOV AH,02H
MOV DL,0DH
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
ENDM
DATA SEGMENT
S1 DB'MATCH',0DH,0AH,'$'
S2 DB'NO MATCH',0DH,0AH,'$'
S3 DB'INPUT STRING1:',0DH,0AH,'$'
S4 DB'INPUT STRING2:',0DH,0AH,'$'
MAXLEN1 DB 81
ACTLEN1 DB?
STRING1 DB 81 DUP (?)
MAXLEN2 DB 81
ACTLEN2 DB?
STRING2 DB 81 DUP (?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AH,09H
MOV DX,OFFSET S3
INT 21H
MOV AH,0AH
MOV DX,OFFSET MAXLEN1
INT 21H
CRLF
MOV AH,09H
MOV DX,OFFSET S4
INT 21H
MOV AH,0AH
MOV DX,OFFSET MAXLEN2
INT 21H
CRLF
MOV SI,OFFSET STRING1
MOV AH,[SI-1]
MOV DI,OFFSET STRING2
MOV AL, [DI-1]
CMP AH,AL
JGE GE1
MOV CL,AL
GE1: MOV CL,AH
KKK: MOV AL,[SI]
mov AH,[DI]
CMP aH,AL
JNZ NE1
INC SI
INC DI
LOOP KKK
MOV AH,09H
MOV DX,OFFSET S1
INT 21H
JMP EXIT
NE1: MOV AH,09H
MOV DX,OFFSET S2
INT 21H
EXIT: MOV AX,4CH
INT 21H
CODE ENDS
END START
以下是程序运行结果:
2.从键盘输入数据并显示的设计
为掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII 码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数显示。
以下是详细源程序:
DATA SEGMENT
S1 DB' INPUT HEX SHU',0DH,0AH,'$'
S2 DB 0DH,0AH,'THE RESULT :',0DH,0AH,'$'
ERROR DB'INPUT ERROR',0DH,0AH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,0
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET S1 ;显示输入十六进制数
MOV AH,9
INT 21H
CALL DISP
MOV AH,4CH
INT 21H
ERROR1: MOV DX,OFFSET ERROR
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
DISP PROC NEAR
MOV CL,4
MOV CH,4
MOV BX,0
KKK: MOV AH,01H
INT 21H
SUB AL,30H;减去30H
CMP AL,9
JNG LP;0~9
SUB AL,27H
CMP AL,15
JA ERROR1
AND AL,0FH
LP: ROL BX,CL ;十六进制数存放到BX中ADD BL,AL
DEC CH
JNZ KKK
MOV DX,OFFSET S2
MOV AH,9
INT 21H
MOV CX,16
HEXBIN: SHL BX,1 ;二进制转化
JC LP3
MOV DL,0;显示CF中的值
JMP NEXT
LP3: MOV DL,1
NEXT: ADD DL,'0'
MOV AH,2
INT 21H
LOOP HEXBIN
RET
DISP ENDP
CODE ENDS
END START