Ассемблерные головоломки или может ли машина понимать естественный язык


Рисунок2 Матрица команд - часть 2


Подавляющая часть r/m и r8/16 сосредоточена в нечитабельных областях таблицы ASCII (т.е. имеет код либо меньше 20h, либо больше 7Fh), поэтому пользоваться ими нам практически не придется. Приятное исключение составляют команды типа: XXX [reg16],reg8/16 и XXX [BP+im8],reg8/16, да и то далеко не со всем набором регистров. Но об этом мы еще поговорим позже, а пока, уподобившись Кириллу и Мефодию, будет составлять Азбуку.

Все машинные команды можно разбить на три большие группы. К первой относятся однобайтовые команды, не имеющие никаких или практически никаких побочных эффектов. Они могут изменять значение регистров общего назначения или насиловать стек, но не должны лезть в порты, обращаться к памяти и т. д.

Вторую группу возглавляют двух или тех байтовые команды, один из операндов которых представляет собой непосредственное значение. Это очень важные команды, поскольку непосредственное значение позволяет кодировать те символы, которые не могут быть представлены командами первой группы. В частности, в нет символа пробела, без которого не обходится ни одна текстовая строка.

В третью группу попадают все остальные команды. Использовать их можно, но только с осторожностью. Короче говоря, первые две группы — это наш активный лексикон, а третья — заначка про запас.

Составленная нами азбука будет выглядеть так:

 

символ

команда

опкод

&

es:

26h

.

DDA

27h

.

CS:

2Eh

/

DAS

2Fh

?

AAS

3Fh

@

INC AX

40h

[

POP BX

5Bh

\

POP SP

5Ch

]

POP BP

5Dh

^

POP SI

5Eh

_

POP DI

5Fh

`

PUSHA

60h

DS:

3Eh

6

ss:

36h

7

AAA

37h

A

INC CX

41h

a

POPA

61h

B

INC DX

42h

b

BOUND

62h

C

INC BX

43h

c

ARPL

63h

D

INC SP

44h

d

FS:

64h

E

INC BP

45h

e

GS:

65h

F

INC SI

46h

f

size:

66h

G

INC DI

47h

g

addr:

67h

H

DEC AX

48h

I

DEC CX

49h

J

DEC DX

5Ah

K

DEC BX

4Bh

L

DEC SP

4Ch

M

DEC BP

4Dh

N

DEC SI

4Eh

O

DEC DI

4Fh

P

PUSH AX

50h

Q

PUSH CX

51h

R

PUSH DX

52h

S

PUSH BX

53h

T

PUSH SP

54h

U

PUSH BP

55h

V

PUSH SI

56h

W

PUSH DI

57h

X

POP AX

58h

Y

POP CX

59h

Z

POP DX

5Ah




Начало  Назад  Вперед



Книжный магазин