; 本程序通过编译,运行正确
Code Segment
Assume CS:Code,DS:Code
BUF db 23,-69,35,46,57,68,79,81,98,-43
Elements equ ($-BUF)/Type BUF ;元素个数
Plus db 0 ;正数计数
Negative db 0 ;负数计数
Odds db 0 ;奇数计数
Evens db 0 ;偶数计数
Start: push cs
pop ds
push cs
pop es ;使数据段、附加段与代码段同段
; 有10个实数,要求程序能够统计共有多少个正数,多少个负数,以及有多少个奇数、偶数。
cld
lea si,BUF ;取数据地址
mov cx,Elements ;元素个数
Statics: test byte ptr [si],80h ;是否正数?
jnz $+8 ;不是
inc Plus ;是,正数计数
jmp $+6
inc Negative ;负数计数
test byte ptr [si],1 ;是否偶数?
jnz $+8 ;不是
inc Evens ;是,偶数计数
jmp $+6
inc Odds ;奇数计数
inc si ;si增1,判断下一个元素
loop Statics
Exit_Proc: mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束
汇编语言是与CPU有密切关系的,因此,不知道你用什么CPU就没有办法为你编写汇编语言!