学生用《微机原理及应用》实验指导书--最终版 - 图文(8)

2019-09-01 22:26

n?(2Kk?1?1) = N

2

因此我们用减奇数法可求得近似平方根,即获得平方根的整数部分。若要做S的运算,就可以从S中逐次减去自然数中的奇数1、3、5、7、9??,一直减到余数为零或不够减下一个自然数的奇数为止,所减的自然数奇数的个数即为S的近似平方根。

设被开平方为正整数,存放在6300~6301H内存单元,所获得的平方根存放在6308H内存单元,所剩的余数存放在6309H内存单元,程序流程图如下:

AX ( )-(DX)→AX Y 0? (AX)≥

N

平方根→6308H 余数→ 6309H 减奇数个数计数器+1 形成下一个奇数 被开方数 → AX 0001 →DX 00 →CL 结 束 开平方程序流程图

程序清单

CODE SEGMENT ; Sy6.ASM 十六进制开平方程序

ASSUME CS:CODE ORG 6000H START: JMP START0

YA EQU 6300H ;被开方数地址

36

YB EQU 6308H ;方根地址 YC EQU 6309H ;余数地址 START0: MOV SI,YA

MOV AX,[SI] ;取被开方数 MOV CL,00 ;清平方根 MOV DX,0001 ;奇数初值 Y0: SUB AX,DX ;减奇数

JB Y1 ;不够减转存平方根后结束 MOV BX,AX ;够减存余数

INC CL ;奇数个数计数器+1 INC DX ;形成下一个奇数 INC DX

JMP Y0 ;转继续减奇数 Y1: MOV SI,YC

MOV [SI],BL ;余数送存 MOV SI,YB

MOV [SI],CL ;存平方根 JMP $ ;结束 CODE ENDS

END START 实验步骤:

⑴.输入程序。

⑵.在6300H~6301H内存单元分别存入几个不同的被开平方数(2字节、低位在前高位在后),运行程序,查看方根及余数并记录。

⑶.在充分理解该程序的基础上自行设计出2字节的十进制开方程序,调试通过并纪录源程序及运行结果。 五 实验报告主要内容及要求

1.读懂实验源程序,分析程序中每条指令的功能﹑用途,理解该程序的设计思路和方法。

2. 按实验要求自行完成程序设计、调试及修改,使其成满足设计要求,并按步骤进行程序的装入、运行,并记录运行后的结果。

3. 认真记录整理和分析自己所设计的程序在运行中的各种信息。 六 注意事项

当编写的源程序编译出错时,应根据所提示的错误信息的类型,修改好源程序并存盘后,再按下列步骤重新编译装载源程序文件:

37

1. 单击菜单栏“文件”或工具栏“打开”图标,弹出“打开文件”的对话框,然后选择修改存盘后的源文件,单击“确定”即可装入源文件

2. 点击工具栏上的编译装载图标,重新编译装载源程序;或单击鼠标右键,点击“编译装载(N)”,重新编译装载源程序。

38

实验四 数据排序程序的设计与调试

一 实验目的

1. 掌握排序程序的结构及其设计、调试的基本方法。 2.熟悉各类指令对标志状态位的影响及其检测、运用的方法。 二 实验内容

1. 排序程序的功用及其设计、调试的方法。 2. 实验学时数:2H 三 实验设备与工具

DICE-598K 实验系统 + PC机

四 实验方法和步骤

1. 排序程序

SY8.ASM程序为排序程序(参考教材P180的例5-11),是个二重循环程序。其功能将从2900H内存单元开始存放的N个字节中的数据按升序排列,其中字节数N存放于288FH单元。其参考程序和程序流程图如下。

程序清单

CODE SEGMENT ; SY8.ASM 排序程序 ASSUME CS:CODE

ORG 2800H

START: JMP START0

ZJS EQU 28FFH ; 字节数N存放地址

SHJ EQU 2900H ;数据存放首地址 START0: MOV SI, ZJS

MOV CL,[SI] ;取字节数N → CX MOV CH,0

MOV AX, SHJ

ADD AX,CX ;计算数据存放末地址

MOV SI, AX ; 末地址 → SI MOV BL,0FFH ;换位标志FF →BL CNT0: CMP BL,0FFH ;上次排序 时有换位?

JNE CNT3 ;N,结束

MOV BL, 0 ;Y,清换位标志

DEC CX ; 修正CX,外循环下一轮排序 JZ CNT3 ; CX=0,排序已结束 PUSH SI

39

PUSH CX

CNT1: DEC SI

MOV AL,[SI] ;取最末尾数N DEC SI ;指向N-1地址 CMP AL,[SI] ;判(N)> (N-1)? JA CNT2 ;Y,不换位 XCHG AL,[SI] ;N,换位 MOV [SI+1],AL

MOV BL,0FFH ;FF →换位标志

CNT2: INC SI ;换位后修正SI

LOOP CNT1 ;本轮内循环排序完?N,转CNT1 POP CX ; Y,恢复CX、SI POP SI ;上次排序 时有换位?

JMP CNT0 ;转外循环排序

CNT3: JMP $

CODE ENDS

END START

数据个数→ CX 源区末址+1→SI SI-1→ SI,(SI)→AL 换位标志FF→BL Y (SI)<(SI-1)? N (BL)=FF? N N Y (SI-1)←→(SI),FF→BL 00→BL,CX-1→ CX 结束 CX-1→ CX Y (CX)=0? N N N Y (CX)=0? SI, CX 进栈保护 Y 排序程序流程图

40


学生用《微机原理及应用》实验指导书--最终版 - 图文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:芒德勃罗

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: