77范文网 - 专业文章范例文档资料分享平台

微机原理实验报告

来源:网络收集 时间:2019-04-14 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

目录

实验一

1)………………………………………………………………(2) 2)………………………………………………………………(2) 3)………………………………………………………………(3) 实验二………………………………………………………………(4) 实验三

1)………………………………………………………………(5) 2)………………………………………………………………(5) 3)………………………………………………………………(6) 实验六

1)………………………………………………………………(6) 2)………………………………………………………………(7) 实验八

1)………………………………………………………………(8)

实验1 1)从0000:3100H内存单元存放0~15的平方数

STACK SEGMENT STACK DB 50 DUP(?) STACK ENDS

CODE SEGMENT

ASSUME CS:CODE

START:MOV DI,3100H

MOV CX,16 MOV AX,0

MOV DX,0 ;中间寄存器DX(0~15) S1:MOV AX,DX

MUL AL ;ALXAL=AH AL MOV [DI],AL INC DI INC DX LOOP S1 S2:JMP S2 CODE ENDS

END START

分析:

MUL 乘数是8位的, 被乘数是AL=AH AL

16位的, 被乘数是AX=DX AX DIV 除数是 8位的, 被除数是AL=AL存放商,AH存放余数除数是16位的,被除数AX=AX存放商,DX存放余数

实验1 2)REP MOVSB 指令 修改实验1程序2

STACK SEGMENT STACK DB 50 DUP(?) STACK ENDS CODE SEGMENT

ASSUME CS:CODE START:MOV CX,16

MOV AX,0 MOV ES,AX

MOV DS,AX ;赋初值 MOV SI,3100H MOV DI,3200H CMP SI,DI JA S1

ADD SI,CX ADD DI,CX DEC SI DEC DI

S2:STD ;SI

REP MOVSB JMP S0

S1:CLD ;SI>DI 从头部开始传 +1操作

REP MOVSB JMP S0 S0:JMP S0 CODE ENDS

1

END START 分析:

关于REP MOVSB指令,使用之前必须对DS:SI源数据块首地址,ES:DI目的数据块的首地址,CX数据块长度,通过指定DF标志位,当DF=0时,每搬一个数据地址指针+1,用于从首址开始搬,DF=1,每搬一个数据地址指针-1,用于从末尾地址开始搬

实验1 3)统计正数、零、负数的个数 STACK SEGMENT STACK DB 50 DUP(?) STACK ENDS

CODE SEGMENT

ASSUME CS:CODE START:MOV DI,3000H MOV CL,[DI] XOR CH,CH MOV BL,CH INC DI

MOV DX,0 L1:MOV AL,[DI]

TEST AL,80H JZ L3

INC BL ;负数个数+1 JMP L2

L3:CMP AL,0

JE L4

INC DL ;正数个数+1 JMP L2

L4:INC DH ;0的个数+1 L2:INC DI

LOOP L1

MOV [DI],BL MOV [DI+1],DL MOV [DI+2],DH INT 03H

CODE ENDS

END START

分析:

1.取1个数

2.判断符号位是否为0?

Y-->不是负数,继续去判是0还是正数---〉3

N-->是负数,负数个数+1,地址指针+1取下个数---〉4 3.判断这个数是否为0?

Y-->是0,0的个数+1,地址指针+1取下个--〉4 N-->是正数,正数个数+1,地址指针+1取下个-〉4 4.地址指针+1取下个 5.是不是最后个数? Y-->去放结果 N-->2

2

4.实验2 去前导0

如果被除数小于除数,则除不尽,会产生前导0,直接不做除法,取下个除数,如果除得尽,以后就不再做被除数与除数之间的比较 STACK SEGMENT STACK DB 50 DUP(?) STACK ENDS

DATA SEGMENT

DATA1 DW ? ;?为4位16进制数 SYS0 DW 10000,1000,100,10 DATA2 DB 5 DUP(20H) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STACK, ES:DATA TTT PUSH DS

XOR AX,AX PUSH AX

MOV AX,DATA MOV DS,AX

MOV AX,DATA1 ;取字数据 LEA BX,SYS0 ;取除数地址 MOV DI,0 ;商首地址 T0: MOV CX,WORD PTR[BX] XOR DX,DX DIV CX

CMP AX,0 ;比较是否为0

JNE T2 ;若不为0,则跳至原程序逻辑 MOV AX,DX ;若为0继续找下一个 ADD BX,2

CMP CX,10 ;若查至十位数仍为0,则无论个位多少进入输出环节 JNE T0 JMP T3

T2: ADD AL,30H ;写入,有0会保留 MOV DATA2[DI],AL MOV AX,DX ADD BX,2 INC DI CMP CX,10 JNE T1 JMP T3

T1: MOV CX,WORD PTR[BX] XOR DX,DX DIV CX JMP T2

T3: ADD AL,30H

3

MOV DATA2[DI],AL INC DI

MOV BX,OFFSET DATA2 MOV AH,06H INT 10H INT 03H CODE ENDS END TTT

实验3 1)在自小到大排序中如果第一次小循环的首次在头部比较交换过后再没有交换过,那么排序在第一次小循环结束后就结束运行

STACK SEGMENT STACK DB 50 DUP(?) STACK ENDS CODE SEGMENT

ASSUME CS:CODE,SS:STACK MMM:MOV CX,15 M4:MOV SI,3000H

MOV BL,0 PUSH CX

MOV AL,[SI] CMP AL,[SI+1] JBE M1

XCHG AL,[SI+1] INC SI

M2:MOV AL,[SI]

CMP AL,[SI+1] JBE M1

XCHG AL,[SI+1] MOV [SI],AL MOV BL,1 M1:INC SI

LOOP M2 CMP BL,0 JE M3 POP CX LOOP M4

M3: INT 03H CODE ENDS END MMM

实验3 2)有符号字数据排序

STACK SEGMENT STACK DB 50 DUP(?) STACK ENDS CODE SEGMENT

ASSUME CS:CODE,SS:STACK MMM:MOV CX,15 M4:MOV SI,3000H

4

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库微机原理实验报告在线全文阅读。

微机原理实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/589978.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: