Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания1.doc
Скачиваний:
31
Добавлен:
02.05.2014
Размер:
130.05 Кб
Скачать

Приложения

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.