Добавить комментарии к коду. Сравнение чисел - Assembler

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, очередной вопрос от меня. Нужно разобрать код (добавив комментарии) Задание: Сравнение двух чисел и вывод верно или не верно выражение Если кто-то сможет - буду действительно благодарен!
    mov ah,9 
    lea dx,mes3
    int 21h
    
    mov ah,0Ah
    lea dx,cit1
    int 21h
    
    call ASCII_num
    mov a,al
    
    mov ah,9
    lea dx,mes0
    int 21h

    ;mov ah,9 
    lea dx,mes3
    int 21h
    
    mov ah,0Ah
    lea dx,cit1
    int 21h
    
    call ASCII_num
    mov b,al
    
    mov ah,9
    lea dx,mes0
    int 21h
    
    mov al,a
    mov bl,b
    
    cmp al,bl
    jle et1
    
    ;daca este falsa conditia
    mov ah,9
    lea dx,mes2
    int 21h
    jmp et2
    
    et1: ;daca-i adevarata conditia
    mov ah,9
    lea dx,mes1
    int 21h
    
    et2: 
    mov ah,0Ah
    lea dx,cit0
    int 21h

Решение задачи: «Добавить комментарии к коду. Сравнение чисел»

textual
Листинг программы
lab3 segment
assume cs:lab3, ds:lab3, es:lab3, ss:lab3
org 100h
 
begin: jmp main
    mes1 db 'A<=B Verno!$'
    mes2 db 'A<=B Neverno!$'
    a   db  ?
    b   db  ?
    
    cit1 label byte
    max1 db 6
    real1 db ?
    date1 db 6 dup (0)
    
    cit0 label byte
    max0 db 1
    real0 db ?
    date0 db 0
    
    mes0  db 0Ah,0Dh,'$'
    mes3 db 'Vvedite chislo: $'
    
    ASCII_num proc
    xor ax,ax
    xor cx,cx
    mov cl,real1
    mov si,offset date1
    xor bx,bx
    mov bl,10
    m_p1:
        xor dx,dx
        push cx
        mov cl,[si]
        sub cl,30h
        mul bx
        add ax,cx
        inc si
        pop cx
    loop m_p1
    ret
ASCII_num endp
 
    
main:
    mov ah,9 
    lea dx,mes3
    int 21h
    
    mov ah,0Ah
    lea dx,cit1
    int 21h
    
    call ASCII_num
    mov a,al
    
    mov ah,9
    lea dx,mes0
    int 21h
    
    
    ;mov ah,9 
    lea dx,mes3
    int 21h
    
    mov ah,0Ah
    lea dx,cit1
    int 21h
    
    call ASCII_num
    mov b,al
    
    mov ah,9
    lea dx,mes0
    int 21h
    
    mov al,a
    mov bl,b
    
    cmp al,bl
    jle et1
    
    ;daca este falsa conditia
    mov ah,9
    lea dx,mes2
    int 21h
    jmp et2
    
    et1: ;daca-i adevarata conditia
    mov ah,9
    lea dx,mes1
    int 21h
    
    et2: 
    mov ah,0Ah
    lea dx,cit0
    int 21h
    
    ret
    lab3 ends
    end begin

Объяснение кода листинга программы

Список элементов кода:

  1. Комментарии к коду.
  2. Объявление переменных: a, b, real1, date1, max1, cit1, mes1, mes3, ASCII_num, main, al, bl.
  3. Процедура ASCII_num для преобразования чисел в строки.
  4. Ввод чисел с клавиатуры с помощью функции int 21h.
  5. Сравнение чисел a и b.
  6. Вывод сообщения в случае ложного сравнения чисел.
  7. Вывод сообщения в случае истинного сравнения чисел.
  8. Завершение работы программы с помощью функции ret.
  9. Конец сегмента кода lab3.

Оцени полезность:

9   голосов , оценка 4.333 из 5