求一个简单的汇编语言程序

有10个实数,要求程序能够统计共有多少个正数,多少个负数,以及有多少个奇数偶数 谢谢

; 本程序通过编译,运行正确
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 ;编译到此结束
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-09
汇编语言是与CPU有密切关系的,因此,不知道你用什么CPU就没有办法为你编写汇编语言!

用汇编语言怎么编写跑马灯程序?
跑马灯程序用汇编是很好实现的,只要用好循环移位指令就可以,以下是程序。\\x0d\\x0aORG 0000H\\x0d\\x0aLJMP MAIN\\x0d\\x0aORG 0030H\\x0d\\x0aMAIN:\\x0d\\x0a MOV A,#0FEH\\x0d\\x0a\\x0d\\x0aLOOP:\\x0d\\x0a MOV P1,A ;将控制字送端口\\x0d\\x0a\\x0d\\x0a ...

汇编语言编制程序,实现从1加到100
最简短的完整程序:CODE SEGMENT ASSUME CS:CODE START:;--- MOV AX, 0 MOV CX, 100 S: ADD AX, CX LOOP S ;---基本的,就上面四行--- MOV AH, 4CH INT 21H CODE ENDS END START

用汇编语言编写一个程序
使用汇编语言编写程序实现用户登录功能,包含用户名和密码输入与验证。程序通过结构类型定义用户名和密码信息,并实现输出、获取光标位置、设置光标位置、窗口上滚、输入密码以及用户输入错误处理等功能。主要步骤包括初始化环境、输入用户名、验证用户名、输入密码、验证密码、显示欢迎信息和结束程序。程序首先初始...

用汇编语言编一个程序
)stack ENDScode SEGMENT ASSUME CS: code, DS: dataBEGIN: MOV AX, dataMOV DS, AX MOV CX, 15LOOP1: PUSH CX ; 计算第 i 行前导空格数 DEC CX JZ LABEL1LOOP2: ; 前导空格 MOV DX, OFFSET SPACE MOV AH, 09H INT 21H LOOP LOOP2LABEL1: ...

如何编写最简单的汇编语言
我们需要使用各种汇编指令进行程序调试。接下来出现了,一个“-”,键入R查看数据,点击U反汇编,可以查看到将要执行的步骤 接下来便是执行程序,首先设置数据段。通过键入两次T(逐行执行命令)将data segment 设置为数据段。这里,我们将各个步骤分别讲解 程序调试完毕,在来观察数据段中的值的情况。

简单的汇编语言程序设计!加急!
SUBB A, 31H ;(30H)-(31H)JC EXIT ;不够减转移 MOV 32H, 31H ;否则31H才是小数 EXIT:END --- 2. 将片内RAM单元中 30H~37H 的数据送到片外RAM的 40H~47H。MOV R0, #30H MOV R1, #40H MOV R2, #8 LOOP:MOV A, @R0 MOVX @R1, A INC R0 INC R1...

求一个汇编语言程序实例(MASM for windows环境下)
MOV CX,N ;BUF中元素的个数,赋值给CX MOV AX,0 ;AX存放正数的个数 NEXT:CMP byte ptr [BX],0 JNG LESS0 ;小于或等于0,跳转 INC AX LESS0:INC BX ;指向下一个元素 LOOP NEXT MOV COUNT,AX MOV AX,4C00H INT 21H CODE ENDS END START 流程图:...

高分求一个汇编语言的完整程序!
DONE MOV 21H,#00H MOV A,20H INC A DA A MOV 20H,A CJNE A,#24H,DONE MOV 20H,#00H DONE: POP ACC POP PSW RETI ORG 0D59H SSEE: SETB RS1 MOV R5,#05H SSE2: MOV 30H,#20H MOV 31H,#7EH MOV R7,#06H SSE1: MOV R1,#0DDH ...

要求用汇编语言编写的小游戏程序
cmp al, 1Fh ;撞到墙 Je exit cmp al, 05h ;吃食物 Jne mgo Call Eat mgo:mov word ptr[si+_newxy],bx ;update mov word ptr es:[bx], 0e02h ;drawHead ('_')pop bx mov word ptr[si+_oldxy], bx ;Save oldxy add si, _len ;===移动并绘制身体 ...

用汇编语言编写一个小小程序
这个还不简单#include<stdio.h>void main(){ float a,b,c,s;\/*定义数据类型,数据初始化*\/s=(a*b+c)\/a;\/*计算并把计算结果赋值给s*\/printf("s=%f\\n",s);\/*输出计算结果*\/}

相似回答