Masha116
@Masha116

Не могу решить лабу по ассемблеру?

5fd655d6556fe041954745.jpeg
Тема: "Программирование разветвляющихся алгоритмов в Ассемблере".
Написала к первой функции y1 деление с остатком, не понимаю как сделать разветвление от условия, если это условие не удовлетворяет.
mov al,x
        cmp al,a
        jg sled1
        mov bl,a
        jmp sled2
        
sled1:  mov ah,1
        int 21h
        
        mov al,x
        test bh,4
        div bh
        mov bl,ah
        
sled2:  mov y1,bl

Помогите с первой функцией y1, а дальше буду по примеру разбираться сама.
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ответы на вопрос 2
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
mov al,x
cmp al,a
jg sled1
mov bl,a
...


как сделать разветвление от условия, если это условие не удовлетворяет.

Если условие не удовлетворено, инструкция jg sled1 не совершает перехода и ты просто выполняешь следующую за ней инструкцию -- mov bl, a. Ветвления и переходы в твоём коде выглядят правильно.
Ответ написан
Комментировать
Masha116
@Masha116 Автор вопроса
Получилось примерно так, оно вроде как даже работает и верно выполняет условия при подстановки чисел. Может кому пригодится, код прикрепляю.
На неделе понесу на проверку и если что отпишусь.
usl1:   cmp al,a
        jg @true1
        mov al,a
        jmp short @Y1
        
@true1: mov al,x
        mov bh,4
        div bh
        mov bl,ah
        mov al,bl
        
@Y1:    mov y1,al

usl2:   mov ah,0
        mov al,x
        mov bl,a
        div bl
        mov al,bl
        cmp al,3
        jg @true2
        mov al,x
        jmp short @Y2

@true2: mov al,a
        mov bl,x
        mul bl
        mov al,bl
        

@Y2:    mov y2,al 
        mov al,y1
        add al,y2
        mov y,al
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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