微机实验报告_微机实验报告答案
微机实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“微机实验报告答案”。
自动化 学院 物联网 专业 1 班 学号
姓名 协作者 教师评定
实验一 操作训练及数码转换实验
一、实验目的1)掌握80x86微机原理及接口技术教学实验系统的操作,熟悉Wmd86联级集成开发调试软件的操作环境。
2)掌握不同进制数及数码相互转换的程序设计方法。
二、实验设备
PC一台,td-pite微机/单片机教学实验装置一套。
三、实验内容与步骤 实验程序:
1、STAK SEGMENT STACK
DW 64 DUP(?)STACK ENDS DATA SEGMENT
ORG 0500H DATA1 DB 00H, 01H,02H,03H,04H,05H,06H,07H,08H,09H,10H
DB 11H,12H,13H,14H,15H
ORG 0600H DATA2 DB 16 DUP(?)DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET DATA1
MOV DI, OFFSET DATA2
MOV CX,0010H A1: MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
LOOP A1
MOV AH,4CH INT 21H CODE ENDS END START 编译连接后使用U命令查看DS地址为0208 使用G命令运行再用D命令查看结果正确
2、将ASCLL码表示的十进制数转换成二进制数 参考程序 略 利用E命令修改0500开始的数据输入34 35 后G命令运行再用D命令查看结果为DATA:0510 2D正确输入为12 95时对应结果为0C 5F 编程练习一:
1)编程实现将十进制数的ASCLL码转换成BCD码 要求:用E命令从键盘输入的五位十进制数的ASCLL码已存放在0500H起始的内存单元内(例25H、30H、32H、34H、65H),把它转换成BCD码后,再分别存入050AH起始的内存单元内。若输入的不是十进制数的ASCLL码,则对应的结果的存放单元内容为“FF” 程序代码:
STACK SEGMENT STACK DW 64 DUP(?)STACK ENDS DATA SEGMENT ORG 0500H DATA1 DB 25H,30H,32H,34H,65H ORG 050AH DATA2 DB 5 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX MOV SI,OFFSET DATA1 MOV DI,OFFSET DATA2 MOV CL,5 A1: MOV AL, [SI] CMP AL,30H JB A2 CMP AL,39H JA A2 AND AL, 0FH MOV [DI], AL JMP NEXT A2: MOV BYTE PTR [DI], 0FFH JMP NEXT NEXT: INC SI INC DI DEC CL JNZ A1 MOV AH,4CH INT 21H CODE ENDS END START 实验结果:
自动化 学院 物联网 专业 1 班 学号
姓名 协作者 教师评定
实验二:运算类编程实验
一、实验目的1)掌握使用运算类指令编程及调试方法。
2)掌握运算类指令对各状态标志位的影响及其测试方法。3)学习使用软件监视变量的方法。
二、实验设备
PC一台,td-pite微机/单片机教学实验装置一套。
三、实验内容及步骤
4、除法运算
题目:十进制的除法。被除数和除数均已非压缩BCD数形式存放在内存中。试验程序:
STACK SEGMENT STACK DW 64 DUP(?)STACK ENDS DATA SEGMENT DATA1 DB 2 DUP(?)DATA2 DB 1 DUP(?)RESULT DB 2 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS: CODE,DS:DATA START: MOV AX, DATA MOV DS, AX CALL INIT MOV SI, OFFSET DATA2 MOV BL, [SI] MOV SI,OFFSET DATA1 MOV DI, OFFSET RESULT MOV CL,0AH MOV AL,[SI] MUL CL ADD AL,[SI+01H] MOV AH,00H DIV BL MOV AH , 00H DIV CL MOV [DI],AX MOV AH,4CH INT 21H INIT: MOV SI,OFFSET RESULT MOV CX,0002H MOV AX,00H A1:MOV [SI],AL INC SI LOOP A1 RET CODE ENDS END START 用e命令赋值被除数09 02 除数04 g命令运行 d命令查看0072:0003 显示02 03 运行结果:
编程练习
2)已知在起始地址为0500H的内存单元中,存放一串数据:10H,20H,30H,40H,50H,60H.请编程求其平均值,并把平均值转换成BCD数存入0500H单元中。程序代码:
STACK SEGMENT STACK DW 64 DUP(?)STACK ENDS DATA SEGMENT ORG 0500H DATA1 DW 10H,20H,30H,40H,50H,60H ORG 0510H DATA2 DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE ,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET DATA1 MOV DI,OFFSET DATA2 MOV AX,[SI] MOV CL, 5 A1: MOV BX,[SI+2] ADD AX,BX INC SI INC SI DEC CL JNZ A1 MOV BL,06H DIV BL MOV BL,0AH DIV BL MOV BH,AH MOV BL,10H MUL BL ADD AL,BH MOV [DI],AL MOV AH,4CH INT 21H CODE ENDS END START 用g命令运行再用d命令查看0772:0510中内容为56
自动化 学院 物联网 专业 1 班 学号311300 姓名 协作者 教师评定
实验三:分支、循环及子程序设计实验
一、实验目的1)了解分支、循环子程序等程序的基本结构。
2)掌握分支程序、循环结构程序的设计和调试方法。3)掌握子程序的定义和调试方法。
二、实验设备
PC一台,td-pite微机/单片机教学实验装置一套。
三、实验内容和步骤 3.名次表 程序代码:
STACK SEGMENT STACK DW 64 DUP(?)STACK ENDS DATA SEGMENT ORG 0100H DATA1 DB 10 DUP(?)ORG 0200H DATA2 DB 10 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV SI,OFFSET DATA1 MOV CX,000AH MOV DI,OFFSET DATA2 A1: CALL AA1 MOV AL,0AH SUB AL,CL INC AL MOV BX,DX MOV [BX+DI],AL LOOP A1 MOV AH,4CH INT 21H AA1: PUSH CX MOV CX,000AH MOV AL, 00H MOV BX,0100H MOV SI,BX A2: CMP AL,[SI] JAE A3 MOV AL,[SI] MOV DX,SI SUB DX,BX A3: INC SI LOOP A2 ADD BX,DX MOV AL,00H MOV [BX],AL POP CX RET CODE ENDS END START 实验步骤:
汇编连接生成exe文件
用e命令输入:3CH,40H,47H,61H,4FH,5DH,52H,30H,56H,45H,等十个成绩。再用g命令运行d命令查看0722:0200.编程练习
2)有3个8位二进制数连续存放在0200H开始的内存单元中,设他们之中至少有两个数是相同的。编写程序找出与这两个数不同的数,把该数所在地址送到0204H单元,若三个数都相同则送0FFFFH到0204单元。程序代码:
STACK SEGMENT STACK DW 64 DUP(?)STACK ENDS DATA SEGMENT ORG 0200H DATA1 DB ? DATA2 DB ? DATA3 DB ? ORG 0204H DATA4 DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS ,AX LEA SI,DATA1 LEA SI,DATA4 MOV AL,[SI] MOV AH,[SI+1] MOV BL,[SI+2] CMP AL,AH JZ A1 CMP AL,BL JZ A2 MOV [DI],SI JMP A4 A2: ADD SI,1 MOV [DI],SI JMP A4 A1: CMP AL,BL JZ A3 ADD SI,2 MOV [DI],SI JMP A4 A3: MOV [DI] ,0FFFFH A4:MOV AH,4CH INT 21H CODE ENDS END START 实验步骤:e0772:0200命令输入数据01 01 01g命令运行 的命令查看得到
运行结果: