当前位置:文档之家› 南邮微机原理实验报告资料

南邮微机原理实验报告资料

END BEG
运行结果:
上机题3.从键盘输入的一位十六进制ASCII码→二进制数显示
源程序:
DATA SEGMENT USE16
MESG DB 'Please Enter!',0DH,0AH,'$'
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
BEG: MOV AX,DATA
MOV DS,AX
MOV AL,BUF
MOV MAX+4,AL
MOV MIN+4,AL
MOV BX,OFFSET BUF+1
MOV CX,COUNT-1
STR2 DB 'WELCOME'
COUNT EQU $-STR2
EXTRA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA,ES:EXTRA
BEG: MOV AX,DATA
MOV DS,AX
MOV AX,EXTRA
MOV ES,AX
MOV CX,COUNT
《微型计算机原理与接口技术》
上机实验
学 院:电子科学与工程
专 业:电磁场与无线技术
姓 名:陈秀慧
课 程 号:B0300062S
学 号:B14020604
任课老师:欧晓鸥
2016年 3 月 21日
一、实验目的
熟悉第四章汇编语言程序设计中简化段定义格式,汇编语言循环结构的实现,DOS功能的调用等功能,以及算术运算程序设计中字符串处理程序设计中内容的显示,十六进制ASCII码与各数值的转化,比较搜索等命令。
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV CX,5
LL1: MOV MESG+5,0DH
MOV MESG+6,0AH
MOV MESG+7,'$'
CALL DISP
MOV MESG+5,0
MOV DS,AX
MOV AH,9
MOV DX,OFFSET MESG
INT 21H
MOV AH,1
INT 21H
CMP AL,3AH
JC NEXT1
SUB AL,7H
NEXT1:SUB AL,30H
MOV BL,AL
MOV AH,2
MOV DL,'='
INT 21H
CALL DISP
MOV AH,2
源程序:
.586
DATA SEGMENT USE16
MESG DB 'What is your name?$'
MESG2 DB '?(Y/N)$'
BUF DB 30
DB ?
DB 30 DUP(?)
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
二、实验任务
1.在微型计算机上用汇编语言编程完成实验内容所规定的实验;
2.记录源代码和程序调试过程;
3.完成实验报告。
三、主要仪器设备
硬件:微型计算机
软件:未来汇编
四、实验内容
上机题1.显示5行HELLO
源程序:
.486
DATA SEGMENT USE16
MESG DB 'HELLO'
DB 0,0,0
MOV DL,'B'
INT 21H
EXIT:MOV AH,4CH
INT 21H
DISP PROC
MOV CX,8
LAST:MOV DL,'0'
RCL BL,1
JNC NEXT2
MOV DL,'1'
NEXT2:MOV AH,2
INT 21H
LOOP LAST
RET
DISP ENDP
CODE ENDS
END BEG
MOV AH,0AH
MOV DX,OFFSET STR1
INT 21H
MOV CL,STR1+1
MOV CH,0
CMP CX,COUNT
JNZ EXIT
MOV SI,OFFSET STR1+2
MOV DI,OFFSET STR2
CLD
LOAD:REPE CMPSB
JNZ EXIT
MOV FLAG,'Y'
MOV MESG+6,0
MOV MESG+7,0
LOOP LL1
MOV AH,4CH
INT 21H
DISP PROC
MOV AH,9
MOV DX,OFFSET MESG
INT 21H
RET
DISP ENDP
CODE ENDS
END BEG
运行结果:
上机题2.询问用户姓名并等待输入,用户输入姓名后按回车键程序再把输入的姓名复制显示在屏幕上
运行结果:
上机题4.字符串比较
比较从键盘输入的字符串STR1,和数据段中定义的字符串STR2是否相等。若相等,则置FLAG单元为‘Y’,不相等则置为‘N’。
源程序:
.586
DATA SEGMENT USE16
STR1 DB 30,?,30 DUP(?)
FLAG DB 'N'
DATA ENDS
EXTRA SEGMENT USE16
.586
DATA SEGMENT USE16
BUF DB 'DLSIEFLIEFAWOKFADL'
COUNT EQU $-BUF
MAX DB 'MAX=',?,0DH,0AH
DB '$'
MIN DB 'MIN=',?
DB '$'
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
MOV AH,2
MOV DL,0AH
INT 21H
MOV AH,9
MOV DX,OFFSET BUF+2
INT 21H
MOV AH,9
MOV DX,OFFSET MESG2
INT 21H
MOV AH,1
INT 21H
CMP AL,'Y'
JNE AGAIN
MOV AH,4CH
INT 21H
CODE ENDS
EXIT:MOV AH,2
MOV DL,0AH
INT 21H
MOV AH,09H
MOV DX,OFFSET FLAG
MOV AH,4CH
INT 21H
CODE ENDS
END BEG
运行结果:
上机题5.数据查找
设从BUF单元开始,存有一字符串,找出其中ASCII码最小和最大的字符,并送屏幕显示。
源程序:
MOV DS,AX
AGAIN:MOV AH,9
MOV DX,OFFSET MESGFra bibliotekINT 21H
MOV AH,0AH
MOV DX,OFFSET BUF
INT 21H
MOV AH,2
MOV DL,0AH
INT 21H
MOV BL,BUF+1
MOV BH,0
MOV SI,OFFSET BUF+2
MOV BYTE PTR [BX+SI],'$'
相关主题