Show Menu

TASM Cheat Sheet by

asm     assembler     tasm

Эквивал. и присва­ивание

EQU
<и­мя> EQU <оп­ера­нд>
Возможны три основных способа задания операнда:
1) Операнд - конста­нтное выражение;
2) Операнд - имя. В данном случае эти имена являются синон­имами;
3) Операнд - произв­ольный текст, не являющийся именем или конста­нтным выраже­нием.
=
<и­мя> = <ко­нст­антное выраже­ние­>
В отличие от констант, опреде­ленных в EQU, данная константа может изменять значение. Также с помощью = можно определить только числовую константу.
Если переменные описываются директивами DB, DW, DD, то константы - с помощью директивы EQU

Задание массива

a DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Может использоваться при создании массивов. В данном случае a хранит адрес первого из 10-ти байт.

Эту директиву можно записать иначе:
a DB 10 DUP (0)

Данная конструкция в общем случае имеет вид:
n DUP (P1, P2, .., Pk), например
a DB 4 DUP (1, 2) создаст последовательность 1, 2, 1, 2, 1, 2, 1, 2

Метки

Существует несколько способов задания метки. На данный момент рассмотрим один из них: <имя метки>:

Например, для создания метки my_label нужно прописать my_la­bel: и команды, выполн­яемые после перехода по данной метке.
 

Арифме­тич­еские команды

ADD
ADD a, b
Прибавляет к значению a значение b. Результат хранится в a.
SUB
SUB a, b
Вычитает из значения a значение b. Результат хранится в a.
MUL
MUL a
Данная команда умножает содержимое регистра ax на a.
DIV
DIV a
Аналогично MUL, использует один операнд. После выполнения деления, частное хранится в ax, а остаток - в dx.
Прим­еча­ние
Для ADD и SUB доступны следующие формы:
Регистр - Регистр; Регистр - Память; Регистр - Значение; Память - Значение; Память - Регистр.

Для MUL и DIV операнд должен находиться в регистре или в памяти.

Условный переход

CMP
CMP a, b
Сравнивает a и b, но не записывает результат. Вместо этого изменяются значения флагов.
JG
JG lbl
Jump Gr­eater
Флаговые условия: ZF=0 и SF=OF
JGE
JGE lbl
Jump Gr­eater or Equal
Флаговые условия: SF=OF
JL
JL lbl
Jump Less
Флаговые условия: SF≠OF
JLE
JLE lbl
Jump Less or Equal
Флаговые условия: ZF=1 или SF≠OF
JE
JE lbl
Jump Equal
Флаговые условия: ZF=1
JNE
JNE lbl
Jump Not Equal
Флаговые условия: ZF=0
Прим­еча­ние
CMP расста­вляет указанные флаги автома­тич­ески.
 

Опреде­ление данных

DB
Define Byte
<и­мя> DB <оп­ера­нд> {, <оп­ера­нд>}
В памяти выделяется один байт (для каждого операнда).
Конста­нтное выражение может иметь значение в диапазоне -128..255
DW
Define Word
<и­мя> DW <оп­ера­нд> {, <оп­ера­нд>}
В памяти выделяется два байта (для каждого операнда).
Конста­нтное выражение может иметь значение в диапазоне -32768..65535
DD
Define Double
<и­мя> DB <оп­ера­нд> {, <оп­ера­нд>}
В памяти выделяется четыре байта (для каждого операнда)
Первому из операндов присва­ивается имя, по которому можно ссылаться на этот() байт(ы). Существует два основных способа задания операндов:
1) Конста­нтное выражение
2) ? - неопре­дел­енное значение

Безусл­овный переход

Безусл­овный переход — это переход, который выполн­яется всегда. Безусл­овный переход осущес­твл­яется с помощью команды JMP. У этой команды один операнд, который может быть непоср­едс­твенным адресом (меткой), регистром или ячейкой памяти, содержащей адрес.
JMP label- осущес­твлеие безусл­овного перехода к метке label

Download the TASM Cheat Sheet

2 Pages
//media.cheatography.com/storage/thumb/don-pengu1no_tasm.750.jpg

PDF (recommended)

Alternative Downloads

Share This Cheat Sheet!

 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          Linux Assembler Cheat Sheet