Problema de ensamblaje: cómo comparar los tamaños de números con signo de dos palabras.
Por primera vez, compare primero los caracteres altos, según las reglas de las fracciones con signo: los grandes son más grandes, los pequeños son más pequeños
Si los caracteres altos son iguales, entonces compare los caracteres inferiores, de acuerdo con Las reglas para el tamaño de los números sin signo: los altos son grandes, los bajos son pequeños
Entonces, ¿qué pasa con el segmento de código de su programa? El código se puede escribir así
MOV AX, DATA; inicialización de segmento de programa
MOV DS, AX
MOV AX, STACK
MOV SS , AX
MOV DX, WORD PTR BUFA+2 Dependiendo del significado de la pregunta, el número se enviará a DX, AX, BX, CX
MOV; AX, WORD PTR BUFA
p>MOV BX, WORD PTR BUFB+2
MOV CX, WORD PTR BUFB
CMP DX, BX; primero
JG MOVE_A ; A es más grande
JL MOVE_B ; B es más grande
CMP AX ; >
CMP AX, CX ; La palabra superior es igual a la palabra inferior
JAE MOVE_A ; A es más grande
JMP MOVE_B es más grande
MOVE_A:
MOVD PTR BUFC+2, DX; Un grande
MOVD PTR BUFC, AX
SALIDA JMP
MOVE_B:
MOVD PTR BUFC+2, BX; B grande
MOVD PTR BUFC, CX
SALIR:
Si el asunto es bufa>bufb, enviar 1 a dx, bufa= bufa=bufb, luego envía 0 a dx, bufa MOV AX, DATA; > MOV DS, AX MOV AX, STACK MOV SS, AX MOV DX, WORD PTR BUFA+2 a DX, AX; , BX, CX Introducir número MOV AX, WORD PTR BUFA MOV BX, WORD PTR BUFB+2 MOV CX, WORD PTR BUFB CMP DX, BX; compare primero las palabras superiores JG MOVE_A; A es más grande JL MOVE_B es más grande CMP AX, CX ; La palabra superior es igual, luego se compara la palabra inferior JA MOVE_A ; A es mayor JZ MOVE_0 ; MOVE_A: MOV DX, 1; A grande MOV_B; B grande MOVE_A: MOV DX, 1 ; Un grande MOV DX, 1 ; Un grande SALIDA JMP MOVE_B: MOV DX, - 1 ; B grande SALIDA JMP MOVE_0: MOV DX, 0 SALIDA: