Вывести на экран сумму двух введённых с клавиатуры цифр. - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д