Найти сумму двух чисел (MASM) - Assembler

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

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

Ввести с клавиатуры два числа и вывести их сумму. На Масм. Я никак не могу понять как создавать и что. на Тасм умею, а тут не получается. помогите пожалуйста. чтоб с заголовками понятно стало

Решение задачи: «Найти сумму двух чисел (MASM)»

textual
Листинг программы
.586
.model flat,stdcall
option casemap:none
include msvcrt.inc
includelib msvcrt.lib
.data
A   dd ?
B   dd ?
fmt db '%d',0
.code
_start:
    invoke crt_scanf,offset fmt,offset A
    invoke crt_scanf,offset fmt,offset B
    mov eax,A
    add eax,B
    invoke crt_printf,offset fmt,eax
    invoke crt__getch
    ret
end _start
end

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

  1. Объявление сегмента и модели памяти - .586 .model flat,stdcall
  2. Отключение отображения регистров в дамме - option casemap:none
  3. Включение библиотеки msvcrt.lib - includelib msvcrt.lib
  4. Объявление двух переменных типа double - .data A dd ? B dd ?
  5. Объявление строки формата для работы с функцией printf - fmt db '%d',0
  6. Начало кода - .code
  7. Вызов функции scanf для ввода двух чисел - invoke crt_scanf,offset fmt,offset A invoke crt_scanf,offset fmt,offset B
  8. Передача суммы двух чисел в функцию printf - mov eax,A add eax,B invoke crt_printf,offset fmt,eax
  9. Вызов функции getch для ввода символа - invoke crt__getch
  10. Конец кода - ret

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


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

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

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