微机原理与接口技术输入输出实验.doc
文本预览下载声明
实验一:输入输出实验
实验环境 PC机+Win 2010+emu8086 实验日期 2016.6.3 一.实验内容
1.熟悉emu8086仿真系统,清楚调试环境,能熟练的查看8086仿真系统的寄存器、内存、堆栈等相关内容。
设计并单步调试实现一位十进制数的加法运算。例如:屏幕显示效果为3+2=5,其中,加数和被加数为键盘输入,其他为屏幕自动输出。
3.在实现了一位十进制数加法运算的基础上,尝试实现两位十进制加法运算、一位十进制数的四则运算以及十进制多位数运算等扩展要求。 二.理论分析或算法分析
1、Emu8086的使用
(1)打开桌面上的云端软件,选择微机原理分类,点击Emu8086的图标,,选择【新建】。
(2)选择COM模板,点击【确定】,软件出现源代码编辑器的界面
在源代码编辑器的空白区域,编写如下一段小程序:
代码编写结束,点击菜单【文件】【另存为……】,将源代码换名保存。本例将源代码保存为.asm。:
(3)如果源程序无错误,则编译通过
单击【单步运行】可以单步调试,程序将每执行一条指令便产生一次中断(建议使用)。单击【后退一步】可以返回到上一条指令(这个功能也是一般调试器没有的)。
单击【运行】,程序将从第一句直接运行到最后一句。
2、设计并单步调试实现一位十进制数的加法运算。
(1)选择新建一个.COM类型的文件。
(2)在编辑界面中,键入代码。
(3)点击工具栏的【模拟】按钮,进入调试窗口,单步调试并观察寄存器的变化情况。
3、进一步完善上述程序,实现一位十进制数的加法运算。
在实现了一位十进制数加法运算的基础上,选择完成如下题目:两位十进制加法运算、一位十进制数的四则运算、十进制多位数运算等。
实现方法(含实现思路、程序流程图、实验电路图和源程序列表等) 一位加法:
org 100h
mov ah, 1
int 21h
mov bl, al
mov ah, 2
mov dl, +
int 21h
mov ah, 1
int 21h
and bl, 0fh
and ax, 0fh
add al, bl
aaa
or ax, 3030h
mov bx, ax
mov ah, 2
mov dl, =
int 21h
cmp bh, 30h
je j1
mov ah, 2
mov dl, bh
int 21h
j1:
mov ah, 2
mov dl, bl
int 21h
ret
多位加法:
org 100h
mov ah, 1
int 21h
mov bh, al
int 21h
mov bl, al
mov ah, 2
mov dl, +
int 21h
mov ah, 1
int 21h
mov ch, al
int 21h
mov cl, al
and bx, 0f0fh
and cx, 0f0fh
mov ax, cx
add ax, bx
aaa
or ax, 3030h
mov bx, ax
mov ah, 2
mov dl, =
int 21h
cmp bh, 30h
je j1
mov ah, 2
mov dl, bh
int 21h
j1:
mov ah, 2
mov dl, bl
int 21h
ret
一位减、乘、除:
mov ah, 1
int 21h
and al, 0fh
mov bl, al
mov ah, 1
int 21h
mov dl, al
int 21h
and al, 0fh
xor ah, ah
cmp dl, +
jne jp1
add al, bl
aaa
jmp short jp4
jp1:
cmp dl, -
jne jp2
xchg al, bl
sub al, bl
aas
jmp short jp4
jp2:
cmp dl, *
jne jp3
mul bl
aam
jmp short jp4
jp3:
xchg al, bl
div bl
aam jp4:
mov bx, ax
mov ah, 2
mov dl, =
int 21h
or bx, 3030h
cmp bh, 1
jc j1
mov dl, bh
int 21h
j1:
mov dl, bl
int 21h
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
显示全部