;SECOND INPUT
CALL SCAN_NUM
;AX/CX = AX
IDIV CX
Комментарий неправильный! IDIV CX
сделает деление со знаком DX:AX
на CX
.
Вам все еще нужно настроить DX
.
CWD
- это инструкция, которая расширит регистр AX
до DX:AX
. Если AX
положительно, то DX
получит 0, а если AX
отрицательно, то DX
получит -1. Этот шаг необходим для правильной работы инструкции IDIV CX
! Он вернет частное в AX
, а остаток в DX
.
;SECOND INPUT
CALL SCAN_NUM ;CX has the second input
CWD ;AX has the first input, sign extending it to DX:AX
IDIV CX ;DX:AX / CX
CALL PRINT_NUM ;PRINT QUOTIENT
Это печатает частное от AX
. Остаток от подразделения находится в DX
. Просто переместите его на AX
и вызовите ту же процедуру макроса печати для печати чисел со знаком.
CALL PRINT_NUM ;PRINT QUOTIENT
mov ax, dx
CALL PRINT_NUM ;PRINT REMAINDER
MOV AH,2
MOV DL,AL
INT 21H
Этот код не делает ничего полезного в вашей программе.