- •Методические указания
- •Методические указания
- •Содержание
- •Введение
- •Теоретическая часть краткая информация о пэвм ibm pc
- •Регистры
- •Организация памяти
- •Использование сегментного регистра
- •Режимы адресации
- •Пространство ввода/вывода
- •Прерывания
- •Представление чисел в эвм
- •Лабораторная работа n1 изучение программы-отладчика, регистров и команд микропроцессора Intel-8088
- •3.Порядок выполнения работы
- •Лабораторная работа n2 написание и отладка управляющих программ с использованием псевдокодов
- •3.Порядок выполнения работы
- •Лабораторная работа n3 написание и отладка управляющих программ на языке ассемблера
- •Приложения
- •1.Справка о командах ассемблера
- •Список использованных источников
- •Методические указания
Приложения
1.Справка о командах ассемблера
MOV - Пересылает байт или слово между регистрами или между регистром и памятью или непосредственно число в память или регистр. Пример, MOV AX, CX или MOV CX, 55.
ADD - Прибавляет один байт или слово в памяти, регистре или непосредственно число к содержимому регистра. Примеры: ADD AX, A5;
ADD AX, [105].
SUB - Вычитает байт или слово в памяти, регистре или непосредственно число из содержимого регистра.
INC - Прибавляет 1 к байту или слову в регистре или памяти. Пример, INC BL.
DEC - Вычитает 1 из байта или слова в регистре или памяти. Пример, DEC AX.
MUL - Команда умножает содержимое регистра AL на содержимое байтового регистра, указанного после команды. Результат записывается в регистр AX. Пример, MUL CX.
DIV - Команда деления. Делимое должно находиться в регистре AX, а делитель в однобайтном регистре, указанном после команды. Результат деления: в регистре AH-остаток, в регистре AL-частное от деления.
CALL - Вызов процедуры, начальный адрес которой указан после команды.
RET - Возврат из процедуры.
PUSH - Сохранение слова в стеке. Пример, PUSH AX.
POP - Извлечение слова из стека. Пример, POP AX.
CMP - Сравнение содержимых двух полей данных. Вычитается второй операнд из первого, но содержание полей не меняется. Меняется состояние флагов, по которым срабатывает следующая команда условного перехода. Пример, CMP AX, 0 или CMP AX, BX.
Группа операций перехода. Используются для передачи управления после проверки условия с помощью команды CMP. Для знаковых данных:
JE - переход если =.
JZ - переход если =0.
JNZ - переход если <>0.
JG - переход если >.
JGE - переход если >=.
JL - переход если <.
JLE - переход если <=.
JNE - переход если <>.
JMP - безусловный переход.
После команды перехода указывается адрес ячейки памяти, куда следует перейти.
W - Записать содержимое памяти в файл (Write). Предварительно нужно выполнить следующую работу:
задать имя программы: N d:\raf\name.com,
в регистрах BX и CX задать размер файла в байтах. Для этого нужно из номера ячейки в которой записана последняя команда вычесть номер ячейки с которой начинается программа(100H) и прибавить единицу (т.к. отсчет начинается с ячейки №100, а не с №101). Это число ввести в регистр CX. Для нашей маленькой программы содержимое регистра BX равно 0.
записать программу командой "W 100" (записать начиная с ячейки №100).
2.ПРИМЕР ПРОГРАММЫ НА ЯЗЫКЕ АССЕМБЛЕРА
INTERPOL SEGMENT
ASSUME CS:INTERPOL
ORG 100H
BEGIN: JMP MAIN
X DW -100
Y DW 100
MAIN PROC
MOV AX, X
MOV BX,Y
M1: CMP AX,BX
JGE M2
ADD AX,1
JMP M1
M2: RET
MAIN ENDP
INTERPOL ENDS
END BEGIN
3.ПРОГРАММА ЛИНЕЙНОЙ ИНТЕРПОЛЯЦИИ НА ЯЗЫКЕ ТУРБОПАСКАЛЬ.
Uses Graph;
var
Xk,Yk,xi,yi,F,d,r:integer;
Begin
d:=3; r:=1;
InitGraph(d,r,'');
xi:=0; yi:=0;
Xk:=100; Yk:=100; F:=0;
Repeat
if F>=0 then
begin
F:=F-Yk;
Xi:=Xi+1;
end else
begin
F:=F+Xk;
Yi:=Yi+1;
end;
PutPixel(Xi,Yi,10);
until Xi=Xk;
readln;
End.