@Denys1203

Как правильно в цикле уменьшать число, находящееся в регистре BX на велечину находящуюся в регистре AX?

Это же не просто написать
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
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 1
@pfemidi
Тут могло бы быть краткое описание меня
Именно так и написать, только в цикле.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы