跪求几个汇编程序的答案!高人进!

来源:百度知道 编辑:UC知道 时间:2024/07/02 00:56:53
1:编程实现求S=(X^2+Y^2)/2的值,并将结果放入RESULT中
2:求出从1~100中所有的偶数
3:在数据段中有一个字节数组,编程统计其中正数个数放入A单元,负数放入B单元。
4:编写实现 计算函数值S=X/2(X<0) S=X/3 (0<=X<=20) S=X/4 (X>20)

第三题:
正数放在PLUS_BUF单元中,负数放在MINUS_BUF单元中

DATA SEGMENT
BLOCK DB 0BH,4BH,0F4H,0AFH,0AH,90H,87H,50H,0F4H,0F3H,21H
DB 99H,0FFH,40H,77H,88H,0B3H,9EH,06H,08H,02H,3AH,91H
CNT EQU $-BLOCK
PLUS_BUF DB CNT DUP(0)
MINUS_BUF DB CNT DUP(0)
STO1 DB 1 DUP(0)
STO2 DB 2 DUP(0)
STO3 DB 'The positive numbers are: $'
STO4 DB 'The negatives are: $'
STO5 DB 'The number of positive number is: $'
STO6 DB 'The number of negative is: $'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV BX,0
MOV DX,0
LEA SI,BLOCK
LEA DI,PLUS_BUF
LEA BP,MINUS_BUF
MOV CX,CNT
CLD
NEXT:LODSB
TEST AL,80H
JNZ MINUS
STOSB
INC BL
JMP AGAIN
MINUS:XCHG BP,DI
STOSB
INC DL