Это же не просто написать
sub bx,ax
как я понимаю?
У меня получилось вот так, оказывается пришлось вернуться к старой задаче, а я в ней заметил ошибку, не понимаю как b1*b2, а теперь ещё и эта задачка, этот цыкл должен быть пока не получиться 2, вот самое задание:
Организовать цикл, последовательно уменьшая число в регистре CX на 1. В цикле уменьшать число, находящееся в регистре BX на величину, находящуюся в регистре AX, пока значение регистра CX не будет равно 2.
Код:
STACKSG SEGMENT PARA STACK 'Stack'
A1 DB 10
A2 DB 15
B1 DB 40
B2 DB 25
C1 DB 5
C2 DB 6
.386
STACKSG ENDS
DATASG SEGMENT PARA 'Data'
DATASG ENDS
CODESG SEGMENT PARA 'Code'
BEGIN PROC FAR
ASSUME CS:CODESG,DS:DATASG,SS:STACKSG,ES:DATASG
mov al, A1
sub al, A2
movzx ax, al
mov bl, B1
mul bl, B2
movzx bx, bl
mov cl, C1
add cl, C2
movzx cx, cl
shl dx, 1
L1: dec cx
sub bx,ax
loop L1
RET
BEGIN ENDP
CODESG ENDS
END BEGIN