教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

微机原理实验指导书(新版) - 图文(4)

来源:网络收集 时间:2026-09-27
导读: 图19 运行前后数据区的变化 五、参考程序 data segment buf1 db 0,1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh;buf1为源区域首地址 org 08H buf2 db 8 ;buf2为目的区域首地址 org 10H ;由于偏移地址10H-1Fh区域可能

图19 运行前后数据区的变化

五、参考程序 data segment

buf1 db 0,1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh;buf1为源区域首地址 org 08H

buf2 db 8 ;buf2为目的区域首地址

org 10H ;由于偏移地址10H-1Fh区域可能被使用,所以建立足够的数据段缓冲区 db ? ;当10H被db伪指令占用后,10h-1fH都会分配给数据段使用 data ends code segment

assume cs:code,ds:data start: mov ax,data mov ds,ax mov cx,16

lea si,buf1 ;如需改变源区域和目的区域位置关系,只要将这里的buf1 lea di,buf2 ;和这里的buf2倒一下次序即可 cmp si,di ja L1

add si,cx

dec si ;源区域首地址+16-1即为源区域末地址 add di,cx ;

dec di ;目的区域首地址+16-1即为目的区域末地址 std

L3: mov al,[si] L3:rep movsb mov [di],al ;递减方式 jmp L2 dec si dec di loop L3

jmp L2 ;初学者往往在这里容易遗漏

L1: mov al,[si] L1:cld

mov [di],al rep movsb inc si ;递增方式 L2:mov ah,4ch

14

inc di int 21h loop L1 L2: mov ah,4ch int 21h code ends end start 六、思考题

1)为什么要在数据段定义足够的缓冲深度? 2)用串传送指令实现该程序功能。

15

软件实验四 冒泡法排序实验

一、实验目的

了解冒泡法原理,学习多重循环的编程方法。 二、实验内容

编写程序,用冒泡法实现将数据段内5,3,3,2,1按照由小到大的顺序重新排列。 三、编程原理

冒泡即将数据两两比较,确保大的数放到右边。N个数经历N-1次冒泡后可以找到最大的气泡。其中“两两比较”可以用内循环的结构实现。经历第一次冒泡后剩下的N-1个数依然是无序的,可以重新重复冒泡过程,第二次只需经历n-2次两两比较即可以找到次大的气泡。依次类推,第N-1次冒泡后恰好可以排好所有的数。重复执行的N-1次的冒泡过程可以用外循环结构实现。由图21可知,内循环次数只要每次和外循环次数相等即可

图20 冒泡法原理示意图1

图21 冒泡法原理示意图2

四、实验步骤

1)按照本章第2节所述,建立源程序文件*.asm(*为自己输入的文件名) 2)用masm.exe工具队源程序进行编译,得到目标文件*.obj; 3)用link.exe工具对目标文件进行链接,得到可执行文件*.exe;

4)用debug调试环境的-U命令,查看数据段段地址,用-D命令查看运行前存储器内容,用-g运行程序后再用-d查看转码后的内容

5)可以用-T命令单步执行,观察每条指令运行后的寄存器及存储器变化情况,观察冒泡法的原理

16

图22 程序运行前后的冒泡法排序情况

五、参考程序 data segment

buf1 db 5,4,3,2,1 data ends code segment

assume cs:code,ds:data start: mov ax,data mov ds,ax

mov dx,4 ;dx中存放外循环次数

L3: mov cx,dx ;cx中存放内循环次数,内循环次数等于外循环次数 lea si,buf1

L2: mov al,[si] ;取出第一个数 cmp al,[si+1] ;两个数比较

jb L1 ;如果第一个数比第二个数大,则两两交换 xchg al,[si+1] mov [si],al L1: inc si loop L2

dec dx ;外循环次数减1,没减到0则跳转至L3处,重新置 jnz L3 ;入内循环的计数初值 mov ah,4ch int 21h code ends end start 六、思考题

1)n个数冒泡法排序共需要多少次循环?

2)循环嵌套时总循环次数和内外循环次数是哪种数学关系?编写内外循环嵌套的双重循环程序,实现100次内循环,300次外循环。

17

软件实验五 存储器校验实验

一、实验目的

了解存储器校验原理,学习汇编指令。 二、实验内容

编写程序,将数据段1000H开始的256个字节校验。 三、编程原理

为了测试存储器每个位是否正常,可以对存储单元的每一位分别写入0和1,再立刻读出来,如果读出依然是0和1,说明写0和写1都正常,否则,说明存储器相应单元已损坏。对每一位写入时,通常采用分别写入55H和0AAH的方式。 四、实验步骤

1)按照本章第2节所述,建立源程序文件*.asm(*为自己输入的文件名) 2)用masm.exe工具队源程序进行编译,得到目标文件*.obj; 3)用link.exe工具对目标文件进行链接,得到可执行文件*.exe;

4)用debug调试环境的-U命令,查看数据段段地址,用-g运行程序后再用-d查看数据段的内容 五、思考题

若存储器段地址为1600H,首偏移地址为0000H,要求以8088为CPU,用全译码方式扩展一片6264存储器,画出扩展电路图

18

…… 此处隐藏:472字,全部文档内容请下载后查看。喜欢就下载吧 ……
微机原理实验指导书(新版) - 图文(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/446292.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)