- •Общая часть
- •История появления ассамблера
- •Получение исполняемого файла
- •Регистры модели x86.
- •Организация цикла
- •Условный и безусловный переход
- •Особенности работы с графикой
- •2.2.2 Листинг программы №2
- •2.2 Постановка задачи №2
- •2.2.1 Выходные данные программы №2
- •2.3 Постановка задачи №3
- •2.3.1 Выходные данные программы №3
- •2.3.2 Листинг программы №3
- •2.4 Постановка задачи №4
- •2.4.1 Выходная форма программы №4
- •2.4.2 Листинг программы №4
2.3 Постановка задачи №3
Решить пример (a+b-c)/d
2.3.1 Выходные данные программы №3
2.3.2 Листинг программы №3
Dosseg ; Директива задает
;Расположение сегментов в памяти
.model small ;Расположение сегментов в памяти
.stack 100h ;директива определяет размерность стека
.data ;директива отмечает начало
;расположения информации в сегменте
;данных
start dw' ' ;Запуск строки
a dw 5 ;присваеваем переменной a значение5
b dw 2 ;присваеваем переменной b значение2
c dw 2 ;присваеваем переменной c значение2
d dw 2 ;присваеваем переменной d значение2
mes db'(a+b-c)/d=','$' ;присваеваем переменной a значение5
.code ;начало сегмента кода
mov ah,0 ;функцияустановки режима дисплея
mov al,3 ;установка режима 25 строк в каждый из
int 10h ;прерывание,по которому происходит
;очистка экрана
mov ax,@data ;загрузка в регистр ds базового адресса
mov ds,ax ;с которого в память будет начинать
;распологаться сегмент данных
mov ah,9 ;функция ДОС вывода строки на экран
mov dx,offset mes ;загрузки в регистр dx смещение по
;которому в сегменте данных распологается
;строка с именем mes
int 21h ;прерывание по которому происходит
;передача управления ОС для выполнения
;ранее объявленной функции
xor ax,ax ;обнуление регистра ах
xor dx,dx ;обнуление регистра dх
mov ax,a ;обнуление регистра ах
mov bx,b ;обнуление регистра bх
adc ax,bx ;сложение ах и bx
mov bx,c ; загрузка в регистр bx переменной c
sbb ax,bx ;вычитание ax от bx
mov bx,d ; загрузка в регистр bx переменной d
div d ;деление содержимого регистра ax на
;переменную d результат будет помещен в регистр ax
cycl: ;метка
push ax
push bx
push cx
push dx
xor cx,cx
p3:xor dx,dx
div cs:p16
mov bx,dx
mov dl,cs:pp[bx];
push dx
inc cx
cmp ax,0
jne p3
mov ah,2
p4:pop dx
int 21h
loop p4
pop dx
pop cx
pop bx
pop ax
mov ah,01h ;приостановка программы до нажатия любой
int 21h ;клавиши
mov ah,4ch ;функция ДОС завершения программы.
int 21h ; прерывания по которому происходит
;передача управления ОС для выполнения
; ранее объявленной функции.
p16 dw 10 ;в p16 заносится основание СС в которой
;будет осуществлятся вывод результата
pp db'0123456789' ; выбор символа для вывода на экран
end ;директива завершения программы на ассемблер
