北京邮电大学微机原理软件 下载本文

实验报告

北京邮电大学 微机原理软件

微机原理软件实验报告

班级: 姓名: 学号: 班内序号: 指导老师:

1

实验报告

北京邮电大学 微机原理软件

实验二 分支、循环程序设计

一、实验目的

1.开始独立进行汇编语言程序设计; 2.掌握基本分支,循环程序设计;

3.掌握最简单的 DOS 功能调用. 二、实验内容

1.安排一个数据区,内存有若干个正数,负数和零.每类数的个数都不超过 9. 2.编写一个程序统计数据区中正数,负数和零的个数.

3.将统计结果在屏幕上显示.

4.(选作)统计出正奇数,正偶数,负奇数,负偶数以及零的个数. 三、实验设计

2

实验报告

北京邮电大学 微机原理软件

四、源代码

DATA SEGMENT

ARRAY DB -1,-2,-3,-4,-5,-6,0,1,2,3,5,4,5,6,0 COUNT EQU $-ARRAY

POSI DB 0 ;正数 NEGA DB 0 ;负数 ZERO DB 0 ;零 ODDPOS DB 0 ;正奇数 EVENPOS DB 0 ;正偶数 ODDNEG DB 0 ;EVENNEG DB 0 ;STRING1 DB '正数个数:','$' ;STRING2 DB '负数个数:','$' ;STRING3 DB '零的个数:','$' STRING4 DB '正奇数个数:','$' STRING5 DB '正偶数个数:','$' STRING6 DB '负奇数个数:','$' STRING7 DB '负偶数个数:','$' DATA ENDS

STACK SEGMENT STACK 'STACK' DB 100 DUP(?) STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

START: MOV AX,DATA MOV DS,AX MOV CX,COUNT

LEA BX,ARRAY ;LOOP1: CMP BYTE PTR [BX],0 JGE POS

INC NEGA ;TEST BYTE PTR [BX],01H ;JZ ENEG ;INC ODDNEG ; JMP NEXT

ENEG: INC EVENNEG ; JMP NEXT POS: JZ ZER

INC POSI ; TEST BYTE PTR [BX],01H JZ EPOS

负奇数 负偶数

把最后的统计结果显示在屏幕上 下同 把数据段的偏移地址给BX 统计负数

利用奇数的二进制表示式最后一位必为1的特点来判断奇偶 统计负奇数 统计负偶数 统计正数 3

实验报告

北京邮电大学 微机原理软件

INC ODDPOS ;统计正奇数 JMP NEXT

EPOS: INC EVENPOS ;统计正偶数 JMP NEXT

ZER: INC ZERO ;统计零 NEXT: INC BX LOOP LOOP1

MOV AH,09H ;显示正数 MOV DX,SEG STRING1 MOV DS,DX

LEA DX,STRING1 INT 21H MOV AH,02H MOV DL,POSI ADD DL,30H INT 21H

MOV DL,0AH ; INT 21H ; MOV DL,0DH INT 21H

MOV AH,09H ;显示负数 MOV DX,SEG STRING2 MOV DS,DX

LEA DX,STRING2 INT 21H MOV AH,02H MOV DL,NEGA ADD DL,30H INT 21H MOV DL,0AH INT 21H MOV DL,0DH INT 21H

MOV AH,09H ; MOV DX,SEG STRING3 MOV DS,DX

LEA DX,STRING3 INT 21H MOV AH,02H MOV DL,ZERO ADD DL,30H

显示空格 显示回车 显示零 4

实验报告

INT 21H MOV DL,0AH INT 21H MOV DL,0DH INT 21H

MOV DL,0AH INT 21H MOV DL,0DH INT 21H

MOV AH,09H ; MOV DX,SEG STRING4 MOV DS,DX

LEA DX,STRING4 INT 21H MOV AH,02H MOV DL,ODDPOS ADD DL,30H INT 21H MOV DL,0AH INT 21H MOV DL,0DH INT 21H

MOV AH,09H ; MOV DX,SEG STRING5 MOV DS,DX

LEA DX,STRING5 INT 21H MOV AH,02H MOV DL,EVENPOS ADD DL,30H INT 21H MOV DL,0AH INT 21H MOV DL,0DH INT 21H

MOV AH,09H ; MOV DX,SEG STRING6 MOV DS,DX

LEA DX,STRING6

INT 21H

北京邮电大学 微机原理软件

显示正奇数 显示正偶数 显示负奇数 5