东南大学微机实验报告一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机实验报告
实验一指令与汇编语言基础
姓名:学号:
专业:测控技术与仪器实验室:
时间:2013年04月23号报告时间:2013年04 月23号评定成绩:审阅教师:
一、实验目的
1)了解命令行操作基本方式和基本命令,掌握PC环境下命令行方式的特点;
2)掌握汇编语言程序指令编辑、宏汇编、连接、运行基本概念;3)熟练掌握动态调试程序TD的常用命令和窗口功能,学会用TD调试程序,修改环境;
4)学会利用DEBUG或TD检查认识指令功能的正确方法。
二、实验内容
(一)必做实验
1-1、要求计算两个多字节十六进制数之差:
3B74AC60F8-20D59E36C1=?
式中被减数和减数为5个字节,存放在DATA1和DATA2的内存区,低位在前,高位在后。试编写减法的程序段,要求相减的结果存放在首址为DATA3的内存区。
1-2、以BUFFER为首地址的内存区存放了10个十六位带符号数,编写程序比较它们的大小,找出其中最小的带符号数,存入MIN和MIN+1单元。
三实验源程序和流程图
1、十六进制相减
A、实验要求:
计算两个多字节十六进制数之差:
3B74AC60F8-20D59E36C1=?
式中被减数和减数为5个字节,存放在DATA1和DATA2的内存区,低位在前,高位在后。试编写减法的程序段,要求相减的结果存放在首址为DATA3的内存区。
B、实验源代码和流程图
DATA SEGMENT
DATA1 DB 0F8H,60H,0ACH,74H,3BH
DATA2 DB 0C1H,36H,9EH,0D5H,20H
DATA3 DB 5 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV CX,5
MOV DI,0
CLD
LOOPER: MOV AL,DATA1[DI]
SBB AL,DATA2[DI]
MOV DATA3[DI],AL
INC DI
DEC CX
JNZ LOOPER
MOV AH,4CH
INT 21H
CODE ENDS
END START
C、实验过程及实验结果
结果
结果分析:理论计算为1A9F0E2A37H与实验结果相似。
2、找出最小的带符号数
A、实验要求:
以BUFFER为首地址的内存区存放了10个十六位带符号数,编写程序比较它们的大小,找出其中最小的带符号数,存入MIN和MIN+1单元。
B、实验源程序和流程图:
DATA SEGMENT
BUFFER DW 0000H,0123H,0235H,5644H,0FFFH,0FFFFH,0ADCDH,5967H,6FABH,0AB54H
MIN DW ?
DATA ENDS
CODE S EGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START: MOV AX,DATA
MOV DS,AX
XOR AX,AX ;将AX清零
MOV CX,9
LEA SI,BUFFER
CLD
LODSW ;取16位带符号数到AX
MOV MIN,AX
CHECK: LODSW ;取下一个数到AX
CMP AX,MIN
JL LOWER
JMP DONE
LOWER: MOV MIN,AX
JMP DONE ;否则转DONE
DONE: LOOP CHECK
MOV AH,4CH
INT 21H
CODE E NDS
END START
C、实验过程及实验结果
实验结果分析:理论计算可知最小带符号数是AB54H与实验结果相同。
三、选做实验
A、实验源程序和流程图
DATA SEGMENT
STRING1 DB 'HELLOGUYS'
STRING2 DB 'HELLOGUYS!'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,STRING1
LEA DI,STRING2
MOV CX,11
CLD
REPE CMPSB
JCXZ ALLMATCH
MOV BL,0FFH
ALLMATCH:MOV BL,00H
JMP DONE
DONE: DEC SI
MOV AH,4CH
INT 21H
CODE ENDS
END START
B、实验过程及实验结果
四、实验中遇到的问题和思考
1、由于刚开始接触微机实验不太会编译、调试、以及连接程序。
2、不会看程序最后运行出来的结果。
3、选作实验编译的时候有一个warning,但是可以运行,不知道是什
么原因。