汇编程序:分支结构判断数字正负

2023-12-28 16:44:29

分支结构判断数字正负

一、实验任务:

本次实验要求开发一个程序,用以分析并处理以下数据集:5, -4, 0, 3, 100, -51。程序的主要功能是判断每个数字是正数、零还是负数,并据此输出明确的判断结果。

二、实验报告:

1. 程序说明。说明程序的功能、结构。

功能:判断一组数据的每一个数是大于0,小于0,还是=0。
结构:
在这里插入图片描述
(1) 编译
在这里插入图片描述

(2) 连接
在这里插入图片描述

(3) 运行
在这里插入图片描述

单步执行
在这里插入图片描述在这里插入图片描述在这里插入图片描述

2. 画出程序框图。

在这里插入图片描述

3. 写出源程序清单和执行结果。

源程序清单

DATA SEGMENT
	BUF DB 5,-4,0,3,100,-51             ; 定义一个字节数组BUF,包含给定的一组数据
	COUNT EQU $-BUF                     ; 计算BUF数组的长度,存储在COUNT中
	Y1 DB 'Y=1',0DH,0AH,'$'             ; 定义字符串Y1,表示Y=1,后跟换行和字符串结束符
	Y2 DB 'Y=0',0DH,0AH,'$'             ; 定义字符串Y2,表示Y=0,后跟换行和字符串结束符
	Y3 DB 'Y=-1',0DH,0AH,'$'            ; 定义字符串Y3,表示Y=-1,后跟换行和字符串结束符
DATA ENDS

CODE SEGMENT
	ASSUME CS:CODE,DS:DATA             ; 假设代码段CS和数据段DS
START:
	MOV AX,DATA                        ; 将数据段地址加载到AX
	MOV DS,AX                          ; 将AX的内容移动到DS,设置数据段寄存器
	CLD                                ; 清除方向标志,确保字符串操作从低地址向高地址进行
	MOV CX,COUNT                       ; 将BUF数组的长度加载到CX,用于循环计数
	LEA SI,BUF                         ; 将BUF的地址加载到SI,用于数组遍历
AGAING:
	MOV AL,[SI]                        ; 将BUF中当前元素加载到AL
	CMP AL,0                           ; 比较AL与0
	JGE BIGR                           ; 如果AL大于等于0,跳转到BIGR
	MOV DX,OFFSET Y3                   ; 将字符串Y3的地址加载到DX
	JMP CRT                            ; 跳转到CRT输出字符串
BIGR:
	JE EQUL                            ; 如果AL等于0,跳转到EQUL
	MOV DX,OFFSET Y1                   ; 将字符串Y1的地址加载到DX
	JMP CRT                            ; 跳转到CRT输出字符串
EQUL:
	MOV DX,OFFSET Y2                   ; 将字符串Y2的地址加载到DX
CRT:
	MOV AH,9H                          ; 设置AH为9H,准备调用DOS中断输出字符串
	INT 21H                            ; 调用DOS中断21H,输出DX指向的字符串
	XOR DX,DX                          ; 清空DX寄存器
	INC SI                             ; 将SI增加1,指向BUF的下一个元素
	LOOP AGAING                        ; 递减CX,并在CX不为0时跳转回AGAING
	MOV AX,4C00H                       ; 将4C00H加载到AX,准备结束程序
	INT 21H                            ; 调用DOS中断21H,结束程序
CODE ENDS
	END START

执行结果
在这里插入图片描述

文章来源:https://blog.csdn.net/m0_74950751/article/details/135241963
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。