《微机原理全部实验》由会员分享,可在线阅读,更多相关《微机原理全部实验(20页珍藏版)》请在金锄头文库上搜索。
1、计算机原理实验室实验报告成绩:计算机原理实验室实验报告课 程 : 微机原理与接口技术 姓 名 : 杨小明 专 业 : 测控技术与仪器 学 号 : 122028207 日 期 : 2014年12月 太原工业学院电子工程系实验一:输入输出实验实验环境PC机Win 2003emu8086proteus仿真器实验日期一实验内容1. 熟悉emu8086仿真系统2. 实现控制台输入输出设计并单步调试实现一位十进制数的加法运算(屏幕效果为3+2=5,红色为输入其他为自动输出)3. 扩展要求1)实现两位十进制和的输出2)实现一位十进制四则运算3)实现多位数运算二思考内容1. 输入输出数据和计算用数据的区别2.
2、 单字符输入输出和串输入输出的不同二理论分析或算法分析文字描述以及算法流程图(文字主要描述基本要求和扩展要求的算法流程区别)基础要求:1)实现两位十进制和的输出利用了除法DIV,将商放在AL,余数放AH。除以10后可将AL和AH中小于10的数单独输出三实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)基本要求源代码: 1)实现两位十进制和的输出的关键代码 运行结果如图一 运行结果如图二 mov ah, 1int 21hmov bl, almov ah, 2mov dl, +int 21hmov ah, 1int 21hadd bl, almov ah, 2mov dl, =int 2
3、1hmov dl, blsub dl, 30hmov ah, 2int 21hHlt mov ah, 1int 21hmov bl, almov ah, 2mov dl, +int 21hmov ah, 1int 21hadd bl, almov ah, 2mov dl, =int 21hmov dl, blsub dl, 30hmov ah, 2int 21hHlt 四实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等) 图一:2+3=5 图二:扩展一思考问题的个人想法,以及算法设想.1)从键盘中输入和从屏幕上输出的都是字符,和计算用的数据时间相差0即30H。
4、所以一个数从屏幕上输出时将+30H。输入时转换成数字-30H五结论完成了本次实验要求的输入输出.实验内容。实现了控制台的输入输出,实现了两位十进制和的输出。实验二:分支程序实验实验环境PC机Win 2003emu8086proteus仿真器实验日期2014-12-一实验内容1. 实现控制台输入输出实现两位十进制数猜数字游戏(基本要求:输入两位数和预设数值比较,对于输出小于输出(大于两倍)和远小于n,13,10,$ s5 db 小于输(大于两倍)和远小于(小于二分之一)实验三:循环程序实验实验环境PC机Win 2003emu8086proteus仿真器实验日期2012/11/6一实验内容1. 实
5、现内存数据访问,用两种方法对五个字从大到小排序2 扩展要求5 用冒泡法时快排2 理论分析或算法分析直接选择排序:内部循环:每一次寻找找出最小的那个数放入AL中。假设第一个数就是最小的。一次和后面的几个数进行比较,修正AL中的数,使每外层循环:初始化BL。初始化比较两个数的指针。当BL=0时,提前退出循环。次最小的都放在AL中。外部循环:内部循环第一次结束后,将移动指向首地址的指针,后移2个字节。再继续内部循环。循环初始次数:CX=LENGTH-1冒泡排序:内部循环:相邻的两个数进行比较。如果前面的数大于后面的数将交换,否则继续下一次的比较,记录下内部循环一轮技术后,交换的次数BL。图一:直接选
6、择排序 图二:冒泡排序三实现方法(含实现思路、程序流程图、实验电路图和源程序列表等基本要求源代码:冒泡排序关键代码: mov cx,4 ; CX length-1 mov si,offset a ; DI string pointer call sort sort proc mov cx,5 lp2: mov ah,02h mov bl,0;计数器BL mov si,offset a mov si, di lp3: push cx mov dl,si lp1: int 21h mov al,si inc si cmp al,si+2 INC SI jna j1 loop lp3 xchg al
7、,si+2 HLT mov si,al A DW 5,7,1,9,2 inc bl ; si string pointer j1: ;cx length-1 inc si sort proc inc si lp2: loop lp1 mov di,si pop cx push cx cmp bl,0 mov dl,di loopnz lp2 lp1: ret inc di sort endp inc di cmp dl,di jna j1 xchg dl,di j1:loop lp1 pop cx mov si,dl inc si inc si loop lp2 ret sort endp4
8、实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)直接选择排序: 冒泡排序:直接排序出现的问题:在该排序中每次都将最小的放在了DL中。必须有MOV SI,DL,不然将造成数据丢失,执行结果出现错误。冒泡排序:初始内存中的数据为A DW 5,7,1,2,9 ,执行后,CX=1时提前退出。实现了快速排序。思考内容:冒泡排序之所以能实现快速排序,是每一次排序都将最大或最小的放在最后或最前,并且有个来统计交换的次数,一旦交换的次数为0时直接退出循环。五结论:完成了本次实验要求的实验内容。学会了实现内存数据访问,用两种方法实现对五个字从大到小排序。实验四:子程序及中断实
9、验实验环境PC机Win 2003emu8086proteus仿真器实验日期一实验内容1. 实现子程序和中断服务子程序的设计;2. 编写子程序设置40H中断为自定义中断服务子程序;3. 编写中断服务子程序实现AX=AX+BX;4.编写主程序调用子程序和中断。二理论分析或算法分析定义数据段Data执行主程序将data放在dx,并保存到ds中,ax存es取子程序的偏移放在ax调用子程序和中断,实现:AX=AX+BX结束三实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)代码:data segment a dw 5fh b dw 3fh c dw ?data endscode segment assume cs:code,ds:datastart: mov dx,data mov ds,dx xor ax,ax mov es,ax mov ax,offset change mo