Написать программу сложения двух десятибайтных чисел с учётом знака - Assembler

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

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

Написать программу сложения двух десятибайтных чисел с учётом знака. помогите написать код программы

Решение задачи: «Написать программу сложения двух десятибайтных чисел с учётом знака»

textual
Листинг программы
IDEAL               ; Режим IDEAL
P386                ; Тип процессора - Intel 80386
 
;Сегмент стека
SEGMENT _stack para use16 stack 'stack'
    dt 100h dup(?)              ; Выделение 256 байт в сегменте стека 
ENDS _stack
 
;Сегмент данных
SEGMENT _data para use16 public 'data'
    x1 DT 06
    x2 DT 08
ENDS _data
 
;Сегмент кода
SEGMENT _code para use16 public 'code'
    ASSUME  cs:_code,ds:_data,ss:_stack 
  
        proc _main
    mov ax,_data
    mov ds,ax
    mov al,[x1]
    mov bl,[x2]
    add al,bl
    mov [res],al
       
    mov     ah,4Ch      ;Задание функции прерывания DOS - завершение программы      
    int     21h     ;Вызов прерывания DOS (21h)
    endp _main
 
 
ENDS _code
END _main               ;Конец программы с точкой входа _main

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

  1. Режим IDEAL - обеспечивает высокое качество выполнения кода, близкое к машинному.
  2. Тип процессора - Intel 80386 - указывает на то, что программа будет работать на процессоре Intel 80386 и ниже.
  3. Сегмент стека - выделяет 256 байт в сегменте стека.
  4. Сегмент данных - определяет сегмент, в котором будут храниться переменные и данные программы.
  5. Сегмент кода - определяет сегмент, в котором будет размещён исполняемый код программы.
  6. ASSUME cs:_code, ds:_data, ss:_stack - задаёт сегменты, используемые в программе.
  7. proc _main - определяет процедуру с именем _main, которая является точкой входа в программу.
  8. mov ax,_data - перемещает значение сегмента данных в регистр AX.
  9. mov ds,ax - устанавливает сегмент данных равным значению регистра AX.
  10. mov al,[x1] - перемещает в регистр AL значение переменной x1.
  11. mov bl,[x2] - перемещает в регистр BL значение переменной x2.
  12. add al,bl - складывает значения регистра AL и BL.
  13. mov [res],al - записывает результат сложения в переменную res.
  14. mov ah,4Ch - устанавливает значение регистра AH равным 4Ch.
  15. int 21h - вызывает прерывание DOS с номером 21h, что приводит к завершению программы.
  16. endp _main - заканчивает определение процедуры _main.
  17. ENDS _code - указывает на конец сегмента кода.
  18. END _main - указывает на конец программы с точкой входа _main.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

5   голосов , оценка 3.6 из 5
Похожие ответы