Red de conocimiento informático - Conocimiento sistemático - El lenguaje ensamblador cuenta el número de números negativos

El lenguaje ensamblador cuenta el número de números negativos

¿ASUMAR?CS:CODE,?DS:DATA

¿DATOS?SEGMENTO

NUM?DB?9,?-1,?-2,?8 ,?123,?17,?-23,?-78,?-56; 5 números negativos

LEN?EQU?$?-?NUM

DATA?ENDS

p>

CÓDIGO?SEGMENTO

INICIO:

MOV?AX,?DATA

MOV?DS,?AX

SUB?BX,?BX

LEA?SI,?NUM

MOV?CX,?LEN

LP: ¿PRUEBA?BYTE? PTR?[SI] ,?80H?; Deje que el bit de signo del número en [SI] se aplique con 1000?0000B. Si el resultado no es 0, significa un número negativo; de lo contrario, es un número positivo. p>

JZ?OVER; El resultado es 0, salte a OVER

INC?BX no es 0, ?BX aumenta en 1, ?BX está aquí para registrar el número de números negativos.

OVER: INC?SI

LOOP?LP

MOV?AX, 4C00H

INT?21H

CODE?ENDS

END?START

Renderizado

PD: Si hay algo que no entiendes, puedes hacer preguntas