夏门天气预报15天查询:跪求几个汇编程序的答案!高人进!

来源:百度文库 编辑:神马品牌网 时间:2024/05/04 14:37:44
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
XCHG BP,DI
AGAIN:LOOP NEXT
MOV STO1,DL

LEA DX,STO5
MOV AH,09H
INT 21H

MOV AX,0
ADD AL,BL
DAA
MOV BL,AL
MOV CL,4H
SHR AL,CL
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
AND BL,0FH
ADD BL,30H
MOV DL,BL
MOV AH,02H
INT 21H

MOV DL,0DH
MOV AH,2H
INT 21H
MOV DL,0AH
MOV AH,2H
INT 21H

LEA DX,STO6
MOV AH,09H
INT 21H

MOV DL,STO1
MOV AX,0
ADD AL,DL
DAA
MOV BL,AL
MOV CL,4H
SHR AL,CL
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
AND BL,0FH
ADD BL,30H
MOV DL,BL
MOV AH,02H
INT 21H

MOV DL,0DH
MOV AH,2H
INT 21H
MOV DL,0AH
MOV AH,2H
INT 21H

MOV DL,0DH
MOV AH,2H
INT 21H
MOV DL,0AH
MOV AH,2H
INT 21H

LEA DX,STO3
MOV AH,9H
INT 21H

LEA DI,PLUS_BUF
L1:MOV AL,[DI]
CMP AL,0
JZ EXIT1
MOV STO1,AL
MOV CL,4H
SHR AL,CL
CMP AL,9H
JA NUM1
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
JMP N1
NUM1:ADD AL,37H
MOV DL,AL
MOV AH,02H
INT 21H
N1:AND STO1,0FH
CMP STO1,9
JA NUM2
ADD STO1,30H
MOV DL,STO1
MOV AH,02H
INT 21H
JMP N2
NUM2:ADD STO1,37H
MOV DL,STO1
MOV AH,2H
INT 21H
N2:INC DI
MOV DL,' '
MOV AH,2H
INT 21H
JMP L1

EXIT1:
MOV DL,0DH
MOV AH,2H
INT 21H
MOV DL,0AH
MOV AH,2H
INT 21H

LEA DX,STO4
MOV AH,9H
INT 21H

LEA BP,MINUS_BUF
L2:MOV AL,[BP]
CMP AL,0
JZ EXIT2
MOV STO2,AL
MOV CL,4H
SHR AL,CL
CMP AL,9H
JA NUM3
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
JMP N3
NUM3:ADD AL,37H
MOV DL,AL
MOV AH,02H
INT 21H
N3:AND STO2,0FH
CMP STO2,9
JA NUM4
ADD STO2,30H
MOV DL,STO2
MOV AH,02H
INT 21H
JMP N4
NUM4:ADD STO2,37H
MOV DL,STO2
MOV AH,2H
INT 21H
N4:INC BP
MOV DL,' '
MOV AH,2H
INT 21H
JMP L2

EXIT2:MOV AH,4CH
INT 21H
CODE ENDS
END START