Вывести на экран сумму двух введённых с клавиатуры цифр. - Assembler (223486)
Формулировка задачи:
Помогите пожалуйста решить данную задачу.
Задание:
1) Вывести на экран сумму двух введённых с клавиатуры цифр (значение вводить так чтобы сумма была меньше 10) 2) Имеется два числа (цифры a и b). Вычислить y=2*a-b+1Данную задачу нужно сделать по этому материалу:
Практика №1
1. Постановка задачи. Написать программу, которая выводит на экран строчку "hello" 2. Разработка алгоритма программы. Алгоритм линейный, разработки не требует. 3. Формализация (запись алгоритма). В текстовом редакторе создаём файл (файл "privet.asm) и записываем в него следующий код
1) data segment (описание сегмента данных) 2) mes db 'Hello!$' (строка для вывода на экран. '$' -признак конца строки) 3) data ends (конец сегмента данных) 4) 5) code segment (начало сегмента кода) 6) start: (метка start - начало нашей программы ) 7) assume cs:code, ds: data (директива компилятора) 8) mov ax, data (настройка сегментов данных) 9) mov ds, ax 10) 11) mov ah, 9 (функция №9 - вывод строки на экран) 12) lea dx, mes (берём адрес строки) 13) int 21h (вызов прерывания для вывода строки) 14) 15) mov ax, 4c00h (функция завершения программы) 16) int 21h (завершаем программу) 17) code ends (конец сегмента кода) 18) end start (конец программы с точки входа start)
4. Компиляция программы tasm privet.asm 5. Компановка программы tlink privet.obj 6. Запуск privet.exe
Лабораторная работа №3
Пример 1: Вывести на экран символ $
mov ah, 02 (номер функции) mov dl, '$' (входные данные) int 21h (вызов прерываний)
Пример 2: Очистить экран
mov ah, 0fh (получить параметры видеорежима) int 10h mov ah, 00 (установить параметры видеорежима) int 10h
Пример 3: Установить курсор
mov ah, 02h (функция mov bh, 00h (видео страница 0) mov dh, 05h (номер строки 5) mov dl, 0ch (номер столбца 12) int 10h (вызов прерываний)
Пример 4: Ввод с клавиатуры и чтение с клавиатуры
mov ah, 1 int 21h
Пример 5: Вывод символов на экран
mov ah, 2 mov dl, dl (поместить символ из ah в dl) int 21h(10h) (отобразить символ)
Команда пересылки данных:
mov <приёмник>, <источник> Команда mov - команда пересылки данных, результатом Ее исполнения является копирование данных из операнда <источник> в операнд <приёмник>mov ah, 09 (записать в регистр ah число 09) mov cl, ah (скопировать байт из регистра ah в ch) mov bx, cx (скопировать слово из регистра cx в регистр bx) mov ch, 0fh mov ch, bl
Команда
| Описаниеadd <слагаемое 1>, <слагаемое 2>
| Записать в операнд <слагаемое 1> значение суммы обоих операндовinc <операнд>
| Увеличить <операнд> на единицуsub <операнд 1>, <операнд 2>
| Записать в операнд <операнд 1> значение разности операндовdec <операнд>
| Уменьшить <операнд> на единицуmul <сомножитель 2>
| Умножает <сомножитель1> на <сомножитель 2> если <сомн2> - байт, то <сомн1> - регистр al (результат-слово в ax); Если <сомн2> - слово, то <сомн1> - регистр ax (результат - двойное слово в dx:ax)div <делитель>
| Делит <делимое> на <делитель> если <делитель> - байт, то <делимое> - регистр ax (результат - частное в al, остаток в ah); если <делитель> - слово, то <делимое> - регистр овая пара dx:ax (результат - частное в ax, остаток в dx)Пример 1
data segment N db 4 F db 5 Y db (dw) ? -------------(тут должен быть код) start : ----(тут должен быть код) mov dx, [N] N add dx, 2 sub dx, [F] ------(тут должен быть код) mov Y, dx -----(тут должен быть код)
Решение задачи: «Вывести на экран сумму двух введённых с клавиатуры цифр.»
push ax ;сохранение регистра ax в стеке mov ah, 0fh ;получить параметры видеорежима int 10h ; mov ah, 00 ;установить параметры видеорежима int 10h ; pop ax ; восстановление регистра ax из стека
Объяснение кода листинга программы
- push ax — отправляет в стек значение регистра ax.
- mov ah, 0fh — устанавливает значение регистра ah равным 0fh.
- int 10h — выполняет интерполяцию (переход к другому сегменту данных).
- mov ah, 00 — устанавливает значение регистра ah равным 00.
- int 10h — выполняет интерполяцию (переход к другому сегменту данных).
- pop ax — извлекает из стека и восстанавливает значение регистра ax.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д