本教程讲解了如何在汇编语言程序中编写代码来计算一组数据里正数、负数及零的数量,适合初学者掌握基础算法与控制结构。
用汇编语言编写一个程序来统计数组中的正数、负数和零的个数。
首先定义数据段:
```
data segment
arr db 1, -2, 0, 3, -4, 5 ; 定义示例数组,可以根据需要修改
len equ $-arr ; 计算数组长度
positive dw 0 ; 正数计数值初始化为0
negative dw 0 ; 负数计数值初始化为0
zero dw 0 ; 零的计数值初始化为0
ends
```
接着定义代码段:
```
code segment
assume cs: code, ds:data
start:
mov ax,data ; 初始化数据段指针
mov ds,ax ;
; 设置循环次数,每次处理一个数组元素
mov cx,len ;
lea si,arr ;
loop_start:
lodsb ; 读取下一个字节到al中
cmp al,0 ; 检查是否为零?
je zero_case ;
jg positive_case ; 如果大于0,则跳转至正数处理
; 处理负数情况
inc negative ;
jmp next_loop ;
positive_case:
inc positive ; 正数值加1
jmp next_loop ;
zero_case:
inc zero ; 零的计数值加一
next_loop:
loop loop_start ; 循环直到处理完所有元素
; 结束程序
mov ax,4c00h
int 21h ;
ends start ;
end start ;
```
此代码段实现了统计数组中正数、负数和零的个数的功能。