北邮微机原理 实验二 分支,循环程序设计
来源:互联网 发布:聚划算与淘宝的区别 编辑:程序博客网 时间:2024/05/16 08:32
实验二 分支,循环程序设计
一.实验目的:
1.开始独立进行汇编语言程序设计;
2.掌握基本分支,循环程序设计;
3.掌握最简单的 DOS 功能调用.
二.实验内容:
1.安排一个数据区,内存有若干个正数,负数和零.每类数的个数都不超过 9.
2.编写一个程序统计数据区中正数,负数和零的个数.
3.将统计结果在屏幕上显示.
源码:
DATA SEGMENT
BUFF DW 0,-9,29,9,-3,0,32,-34
COUNT EQU $-BUFF ;count的值为buff所占字节数
STRING1 DB 'THE NUMBER OF PLUS IS ','$'
STRING2 DB 'THE NUMBER OF ZERO IS ','$'
STRING3 DB 'THE NUMBER OF MINUS IS ','$'
PLUS DB ? ;大于零的个数
ZERO DB ? ;等于零的个数
MINUS DB ? ;小于零的个数
DATA ENDS
STACK SEGMENT STACK 'STACK'
DB 100 DUP (?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
BEGIN: MOV AX,DATA
MOV DS,AX
MOV CX,COUNT
SHR CX,1 ;相当于除2,正好为buff中的数据个数
MOV DX,0 ;设定初值,dh及dl分别为等于,大于零的个数
MOV AH,0 ;ah为小于零的个数
LEA BX,BUFF
AGAIN: CMP WORD PTR [BX],0
JGE PLU ;大于等于零时转plu
INC AH ;统计小于零的个数
JMP NEXT
PLU: JZ ZER ;等于零时转zer
INC DL ;统计大于零的个数
JMP NEXT
ZER: INC DH ;统计等于零的个数
NEXT: INC BX ;修改地址指针
INC BX
LOOP AGAIN
MOV PLUS,DL ;保存结果
MOV ZERO,DH
MOV MINUS,AH
MOV AH,09H ;输出结果
MOV DX,OFFSET STRING1
INT 21H
MOV AH,02H
MOV AL,PLUS
ADD AL,30H
MOV DL,AL
INT 21H
MOV DL,0DH
INT 21H
MOV DL,0AH
INT 21H
MOV AH,09H
MOV DX,OFFSET STRING2
INT 21H
MOV AH,02H
MOV AL,ZERO
ADD AL,30H
MOV DL,AL
INT 21H
MOV DL,0DH
INT 21H
MOV DL,0AH
INT 21H
MOV DX,OFFSET STRING3
MOV AH,09H
INT 21H
MOV AH,02H
MOV AL,MINUS
ADD AL,30H
MOV DL,AL
INT 21H
MOV AX,4C00H
INT 21H
CODE ENDS
END BEGIN
- 北邮微机原理 实验二 分支,循环程序设计
- 北邮微机原理实验三 代码转换程序设计
- 【8086】中国电力出版社 微机原理实验与课程设计指导书 实验二 数据处理实验程序设计 答案
- 实验2 分支循环程序设计
- 微机原理实验 系列
- 微机原理实验 系列
- 微机原理实验二之8259A中断控制器
- 实验二 分支程序实验和循环程序实验
- 微机原理[二]
- 【微机原理】-指令系统与程序设计
- 微机原理上机实验 - 汇编
- 循环程序设计-实验二 BY KTL
- 微机接口实验二:存储器扩展实验
- 键盘--(微机原理实验五)
- 汇编语言简单小程序——分支、循环和排序程序设计实验
- 《微机原理及应用》学习笔记二
- 微机原理
- 微机原理
- 关于virtualcopy为什么源地址要右移8位
- Win2003 sp2安装HD Audio
- Linux中JDK1.6的安装和配置方法
- [技术讨论]代码编写能力与管理手段的配合
- FIN_WAIT_2状态下的连接与Apache
- 北邮微机原理 实验二 分支,循环程序设计
- 程序运行一段时间就自行退出,快把我困惑死了
- 中美大都会第一印象
- Hibernate 一对一外键双向关联
- Effective C++读书笔记---模板与泛型编程
- Hibernate 一对一主键双向关联
- sysbench的安装和性能测试
- C++Builder 6 [BCB6] 共享数据段 错误 测试 (bug 、[Linker Error] Section SHSEG defined in .def file is empty)
- LINUX下图形界面切换到文本模式