微机原理实验3

更新时间:2023-11-11 16:14:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

学 生 实 验 报 告

学 院: 软件与通信工程学院 课程名称: 微机原理与接口技术 专业班级: 电信141班 姓 名: 学 号:

学生实验报告(1)

学生姓名 学号 同组人:无 实验项目 实验3 ■必修 □选修 □演示性实验 □验证性实验 ■操作性实验 □综合性实验 实验地点 指导教师 实验仪器台号 实验日期及节次

一、实验综述

1、实验目的及要求 实验目的

1.利用测试与转移指令实现分支。 2.利用比较与转移指令实现分支。

实验要求

1.利用测试与转移指令实现分支。

程序设计方法:在需要分支的地方用逻辑测试指令TEST进行分支条件的测试判断,再利用各种条件转移指令实现程序分支。 2.利用比较与转移指令实现分支。

程序设计方法:在需要分支的地方用两数的比较指令CMP,或串比较指令CMPS等 进行分支条件的比较判断,再利用转移指令(如JNZ、JNC、JA、JB等)实现程序的分支。

实验内容:

1.在BLOCK开始的内存单元中有若干以字节为单位的正、负数,自编程序,试统计其中≧0的个数存放于M_DATA单元中,<0的个数存放于P_DATA单元中。

2.在BLOCK开始的内存单元中有若干以字节为单位的奇、偶数,自编程序,试统计其中偶数的个数存放于M_DATA单元中,奇数的个数存放于P_DATA单元中。

2、实验仪器、设备或软件

电脑,Masm for windows集成实验环境共享版2015,DOSBOX

二、实验过程(实验步骤、记录、数据、分析)

打开电脑,打开Masm for windows集成实验环境共享版2015、新建一个空白的汇编程序,开始编写程序 实验1:

DATA SEGMENT ORG 1000H

BLOCK DB 37,-90,-32,60,-7,-120 COUNT EQU $-BLOCK ORG 2000H

P_DATA DB COUNT DUP (0) ORG 3000H

M_DATA DB COUNT DUP (0) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:

MOV AX,DATA MOV DS,AX

LEA SI,BLOCK;待判断的数据

LEA DI,P_DATA;存放>0的数据区域 LEA BX,M_DATA ;存放<0的数据区域 MOV CX,COUNT NEXT:

MOV AL,[SI] CMP AL,00H

JGE L1;ZF=1,为>0的数转L1 MOV [BX],AL ;ZF=0,存<0的数 INC BX JMP LOOP1

L1: MOV [DI],AL;存<0的数到M_DATA INC DI

LOOP1: INC SI;判断下一个数据

LOOP NEXT ;CS-1=CS≠0继续处理 MOV AH,4CH INT 21H CODE ENDS

END START

实验2:

DATA SEGMENT ORG 1000H

BLOCK DB 3,7,2,6,17,0 COUNT EQU $-BLOCK ORG 2000H

P_DATA DB COUNT DUP (0) ORG 3000H

M_DATA DB COUNT DUP (0) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:

MOV AX,DATA MOV DS,AX

LEA SI,BLOCK;待判断的数据 LEA DI,M_DATA;存放偶数

LEA BX,P_DATA ;存放奇数 MOV CX,COUNT NEXT:

MOV AL,[SI]

TEST AL,01H;测试末位数据是否为0 JZ L1;等于0为偶数转L1

MOV [BX],AL;不等于0为奇数存p_data区域 INC BX JMP LOOP1

L1: MOV [DI],AL;等于0为偶数存m_data区域 INC DI

LOOP1: INC SI;判断下一个数据 LOOP NEXT

MOV AH,4CH INT 21H CODE ENDS

END START

三.结论 1.实验结果

实验1:

实验2:

本文来源:https://www.bwwdw.com/article/kqkv.html

Top