微机原理与接口技术实验三 数据比较及排序程序.docx

上传人:b****1 文档编号:13797705 上传时间:2023-06-17 格式:DOCX 页数:9 大小:154.93KB
下载 相关 举报
微机原理与接口技术实验三 数据比较及排序程序.docx_第1页
第1页 / 共9页
微机原理与接口技术实验三 数据比较及排序程序.docx_第2页
第2页 / 共9页
微机原理与接口技术实验三 数据比较及排序程序.docx_第3页
第3页 / 共9页
微机原理与接口技术实验三 数据比较及排序程序.docx_第4页
第4页 / 共9页
微机原理与接口技术实验三 数据比较及排序程序.docx_第5页
第5页 / 共9页
微机原理与接口技术实验三 数据比较及排序程序.docx_第6页
第6页 / 共9页
微机原理与接口技术实验三 数据比较及排序程序.docx_第7页
第7页 / 共9页
微机原理与接口技术实验三 数据比较及排序程序.docx_第8页
第8页 / 共9页
微机原理与接口技术实验三 数据比较及排序程序.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理与接口技术实验三 数据比较及排序程序.docx

《微机原理与接口技术实验三 数据比较及排序程序.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验三 数据比较及排序程序.docx(9页珍藏版)》请在冰点文库上搜索。

微机原理与接口技术实验三 数据比较及排序程序.docx

微机原理与接口技术实验三数据比较及排序程序

 

XX大学

实验报告

 

课程(项目)名称:

实验三数据比较及排序程序

学院:

专业:

班级:

学号:

姓名:

成绩:

2013年12月10日

一、任务与目的

1.实验任务:

(1)熟悉和掌握数据比较指令的用法;

(2)掌握多字节有符号数及无符号数排序程序的编写方法。

2.实验目的

(1).掌握数据比较指令的使用方法;

(2)熟悉数据排序实现的基本方法。

二、原理(条件)

1.相关知识:

(1)数据比较指令的使用方法;

(2)8086/8088汇编程序数据排序的基本算法。

2.实验条件:

MASM汇编程序及TD调试软件。

三、容步骤

1.启动TD(TurboDebugger)输入程序段,观察执行情况、标志位变化并分析

结果:

(1)MOVAX,0FF80H

MOVBX,2C76H

CMPAX,BX

JAEABOVE;注意ABOVE由具体地址替代,下同。

XCHGAX,BX

ABOVE:

HLT

(2)MOVAX,0FF80H

MOVBX,2C76H

CMPAX,BX

JLEABOVE

JMPSTOP

ABOVE:

XCHGAX,BX

STOP:

HLT

2.编写10个双字节(字)无符号及从小到大排序程序,观察执行情况并分

析结果:

利用MASM宏汇编程序及TD程序进行调试。

无符号数排序参考程序如下,请在参考程序之上改写。

DSEGSEGMENT

BUFFERDW0AAFEH,3768H,5CD9H,2227H,0BDC1H,725AH,0C236H66FFH,0E23H,8577H

DSEGENDS

CSEGSEGMENT

ASSUMECS:

CSEG,DS:

DSEG

START:

MOVAX,DSEG

MOVDS,AX

LEADI,BUFFER

MOVBL,9

NEXT1:

MOVSI,DI

MOVCL,BL

NEXT2:

MOVAX,[SI]

INCSI

INCSI

CMPAX,[SI]

JNEXT3;小于则不交换

MOVDX,[SI]

MOV[SI-2],DX

MOV[SI],AX

NEXT3:

DECCL

JNZNEXT2

DECBL

JNZNEXT1

MOVAH,4CH

INT21H

CSEGENDS

ENDSTART

 

实现代码:

DSEGSEGMENT

BUFFERDW0AAFEH,3768H,5CD9H,2227H,0BDC1H,725AH,0C236H

DW66FFH,0E23H,8577H

DSEGENDS

CSEGSEGMENT

ASSUMECS:

CSEG,DS:

DSEG

START:

MOVAX,DSEG

MOVDS,AX

LEADI,BUFFER

MOVBL,9

NEXT1:

MOVSI,DI

MOVCL,BL

NEXT2:

MOVAX,[SI]

INCSI

INCSI

CMPAX,[SI]

NEXT3;小于则不交换

MOVDX,[SI]

MOV[SI-2],DX

MOV[SI],AX

NEXT3:

DECCL

JNZNEXT2

DECBL

JNZNEXT1

MOVAH,4CH

INT21H

CSEGENDS

ENDSTART

实现结果如图:

3.编写10个双字节(字)有符号及从小到大排序程序,观察执行情况并分

析结果。

DSEGSEGMENT

BUFFERDW0AAFEH,3768H,5CD9H,2227H,0BDC1H,725AH,0C236H,

DW66FFH,0E23H,8577H

DSEG

ENDS

 

实现结果如图:

实现代码:

DSEGSEGMENT

BUFFERDW0AAFEH,3768H,5CD9H,2227H,0BDC1H,725AH,0C236H

DW66FFH,0E23H,8577H

DSEGENDS

CSEGSEGMENT

ASSUMECS:

CSEG,DS:

DSEG

START:

MOVAX,DSEG

MOVDS,AX

LEADI,BUFFER

MOVBL,9

NEXT1:

MOVSI,DI

MOVCL,BL

NEXT2:

MOVAX,[SI]

INCSI

INCSI

CMPAX,[SI]

JLNEXT3

MOVDX,[SI]

MOV[SI-2],DX

MOV[SI],AX

NEXT3:

DECCL

JNZNEXT2

DECBL

JNZNEXT1

MOVAH,4CH

INT21H

CSEGENDS

ENDSTART

四、结论

通过实验进一步了解了数据比较指令CMP的用法和数据排序程序的原理和编写方法,并且通过对实验现象和实验结果的观察并结合课本得出如下结论:

1.比较指令CMP是用目标操作数减原操作数,但相减的结果不送回目标操作数即指令执行后两操作数容不变,而只是影响6个状态标志位。

2./E用于比较无符号数;JL/JLE用于比较有符号数。

3.数据排序的基本原理:

无符号数比较可以直接用比较指令CMP和条件转移指令来实现,有符号数比较可以用比较指令CMP和条件转移指令JL来实现,而数据的排序可由双重循环实现,以有符号数的比较为例,先使第一个数与下一个数比较,若小于则使其位置保持不变,大于则两数交换位置,此为循环即:

NEXT2:

MOVAX,[SI]

INCSI

INCSI

CMPAX,[SI]

NEXT3;小于则不交换

MOVDX,[SI]

MOV[SI-2],DX

MOV[SI],AX;每执行一遍NEXT2,就将最大数放到高位

以上完成一次排序工作,在通过第二重的9次循环,即可实现对10个数据的小到大排序。

五、参考资料

《微型计算机原理与接口技术》实验指导书

六、评语

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2