
微机原理,用汇编语言编写,给定一组数据,大概十个数,统计正数,负数,0的个数,并显示到屏幕上(重要) 50
我把我要的思路说一下,就是先判断一个数是不是0,然后再判断是不是正负数,大概这样,希望越简略越好,越精辟越好,望大神帮忙!...
我把我要的思路说一下,就是先判断一个数是不是0,然后再判断是不是正负数,大概这样,希望越简略越好,越精辟越好,望大神帮忙!
展开
2个回答
展开全部
org 100h
DATA SEGMENT
BUFFER DW 10
GREATZ DW ? ;正数
ZERO DW ? ;零
LITTLEZ DW ? ;负数
DATA ENDS
START:
MOV AX,DATA
MOV DS,AX
XOR AX,AX ;AX清零
MOV GREATZ,AX
MOV ZERO,AX
MOV LITTLEZ,AX
LEA SI,BUFFER ;取第一个数据
MOV CX,[SI]
ADD SI,2
ST_COUNT:
MOV AX,[SI]
ADD SI,2
AND AX,AX
JLE COUNT1 ;小于等于0则跳转
INC GREATZ
JMP COUNT3
COUNT1:
JL COUNT2 ;小于0则跳转
INC ZERO
JMP COUNT3
COUNT2:
INC LITTLEZ
COUNT3:
DEC CX
JNZ ST_COUNT
CODE ENDS
END START
DATA SEGMENT
BUFFER DW 10
GREATZ DW ? ;正数
ZERO DW ? ;零
LITTLEZ DW ? ;负数
DATA ENDS
START:
MOV AX,DATA
MOV DS,AX
XOR AX,AX ;AX清零
MOV GREATZ,AX
MOV ZERO,AX
MOV LITTLEZ,AX
LEA SI,BUFFER ;取第一个数据
MOV CX,[SI]
ADD SI,2
ST_COUNT:
MOV AX,[SI]
ADD SI,2
AND AX,AX
JLE COUNT1 ;小于等于0则跳转
INC GREATZ
JMP COUNT3
COUNT1:
JL COUNT2 ;小于0则跳转
INC ZERO
JMP COUNT3
COUNT2:
INC LITTLEZ
COUNT3:
DEC CX
JNZ ST_COUNT
CODE ENDS
END START
追问
能把显示到屏幕上的程序也弄上行吗
追答
这个我也不会....
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要求显示三行数字结果?
追问
没错
追答
ASSUME CS:CODE, DS:DATA
DATA SEGMENT
BUFFER DB 7
DB -5, 92, 61, -7, 0, 20, 45
GREATZ DB ? ;正数
ZERO DB ? ;零
LITTLEZ DB ? ;负数
DATA ENDS
CODE SEGMENT
START:
MOV AX, DATA
MOV DS, AX
;-----------------------------
XOR AL, AL ;AX清零
MOV GREATZ, AL
MOV ZERO, AL
MOV LITTLEZ, AL
;-----------------------------
LEA SI, BUFFER ;取第一个数据
MOV CL, [SI]
MOV CH, 0
INC SI
ST_COUNT:
MOV AL, [SI]
CMP AL, 0
JZ COUNT1 ;等于0则跳转
JL COUNT2 ;小于0则跳转
INC GREATZ
JMP NEXT
COUNT1:
INC ZERO
JMP NEXT
COUNT2:
INC LITTLEZ
NEXT:
INC SI
LOOP ST_COUNT
;-----------------------------
MOV AL, GREATZ
CALL OUT_AL
CALL OUT_CRLF
MOV AL, ZERO
CALL OUT_AL
CALL OUT_CRLF
MOV AL, LITTLEZ
CALL OUT_AL
;-----------------------------
MOV AH, 4CH
INT 21H
;-----------------------------
OUT_AL:
MOV AH, 0
MOV BL, 100
DIV BL
ADD AL, 30H
MOV DL, AL
MOV BL, AH
MOV AH, 2
INT 21H
MOV AL, BL
MOV AH, 0
MOV BL, 10
DIV BL
ADD AL, 30H
MOV DL, AL
MOV BL, AH
MOV AH, 2
INT 21H
MOV DL, BL
ADD DL, 30H
MOV AH, 2
INT 21H
RET
;-----------------------------
OUT_CRLF:
MOV DL, 13
MOV AH, 2
INT 21H
MOV DL, 10
INT 21H
RET
;-----------------------------
CODE ENDS
END START
;--------------------------
本程序执行后,显示:
004
001
002
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询