Cómo utilizar el lenguaje ensamblador para determinar lo positivo y lo negativo de un conjunto de datos, contar el número total de números positivos y negativos y luego colocarlos en la ubicación especificada. ¡Por favor, dame algún consejo!
COUNT_NUM_0?DATA?30H?;almacenar el número de cero COUNT_NUM_P?DATA?31H?;almacenar el número de positivos COUNT_NUM_N?DATA?32H?;almacenar el número de negativos
ORG?0000H
AJMP?PRINCIPAL
PRINCIPAL?>ORG?0100H
PRINCIPAL:
MOV?A,#0
MOV? 31H,A
MOV?32H,A
MOV?H,A
MOV?R7,#30;Número total de datos en este conjunto, supongamos hay 30
MOV?R0,#00
MOV?DPTR,#TABLE;Supongamos que los datos están almacenados en la rom
NEXT_ONE:
MOV?A,R0
MOVC?A,@A+DPTR
JZ?ACC_IS_0
JB?ACC.7, ACC_IS_N; es Negativo, salta si es negativo
ACC_IS_P:;Positivo
INC?COUNT_NUM_P
AJMP?NEX
ACC_IS_N:;Negativo
INC?COUNT_NUM_N
AJMP?NEXT
ACC_IS_0:; es 0
INC?COUNT_NUM_0
; ?SIGUIENTE?
SIGUIENTE:;
INC?R0
DJNZ?R7,NEXT_ONE
AJMP?H
TABLA:
DB?55,60,70,80,90?
DB?ff,61,70,81,98
DB ? f2,62,00,07,98
DB?58,63,70,87,98
DB?80,7f,00,82,93?
DB?54,69,79,89,98
FIN