Peter Abel. IBM PC Assembly Language and Programming

Содержание

Слайд 2

гٳϳñ·³ÛÇÝ Íñ³·ñ³íáñáõÙ

¶ñ³Ï³ÝáõÃÛáõÝ
Peter Abel. IBM PC Assembly Language and Programming. Fifth edition, Upper

гٳϳñ·³ÛÇÝ Íñ³·ñ³íáñáõÙ ¶ñ³Ï³ÝáõÃÛáõÝ Peter Abel. IBM PC Assembly Language and Programming. Fifth
Saddle River, New Jersey, Prentice-Hall, 2001, 545 pp.
Kip R. Irvine. Assembly Language for Intel-Based Computers. Third edition, Florida International University, 1999, 676 pp.

Слайд 3

гٳϳñ·³ÛÇÝ Íñ³·ñ³íáñáõÙ

¶ñ³Ï³ÝáõÃÛáõÝ
Â. Þðîâ. Assembler. У÷åáíèê для ВУЗ-ов. Èçä. 2-îå, Ïèòåð, Ñ.-Ïåòåðáóðã, 2006,

гٳϳñ·³ÛÇÝ Íñ³·ñ³íáñáõÙ ¶ñ³Ï³ÝáõÃÛáõÝ Â. Þðîâ. Assembler. У÷åáíèê для ВУЗ-ов. Èçä. 2-îå, Ïèòåð,
637 ñòð.
Â. Þðîâ. Assembler (ïðàêòèêóì). Èçä. 2-îå, Ïèòåð, Ñ.-Ïåòåðáóðã, 2002, 395 ñòð.
Ñ. Çóáêîâ. Assembler äëÿ DOS, Windows è UNIX. Èçä. ÄÌÊ, Ìîñêâà, 2000, 608 ñòð.

Слайд 4

¾É»ÏïñáݳÛÇÝ Ñ³ßíÇã Ù»ù»Ý³Ý»ñÇ å³ïÙáõÃÛáõÝÇó

XVII ¹³ñ (1623 Ã.) –
·ÇïÝ³Ï³Ý ì.ÞÇϳñ¹Ç ·áõÙ³ñáÕ-ѳÝáÕ Ù»ù»Ý³
XVII

¾É»ÏïñáݳÛÇÝ Ñ³ßíÇã Ù»ù»Ý³Ý»ñÇ å³ïÙáõÃÛáõÝÇó XVII ¹³ñ (1623 Ã.) – ·ÇïÝ³Ï³Ý ì.ÞÇϳñ¹Ç ·áõÙ³ñáÕ-ѳÝáÕ
¹³ñ (1671 Ã.) –
÷ÇÉÇëá÷³ »õ ٳûٳïÇÏáë ¶. Ȼ۵ÝÇóÇ Ñ³ßí³Ù»ù»Ý³
XIX ¹³ñ (1842 Ã.) –
·ÇïÝ³Ï³Ý »õ ÷ÇÉÇëá÷³ ´. ä³ëϳÉÇ Ñ³ßí³Ù»ù»Ý³
XIX ¹³ñ (1823 - 1853 Ã.Ã.) –
ٳûٳïÇÏáë â. ´»µµÇçÇ ·³Õ³÷³ñÝ»ñ

Слайд 5

¾É»ÏïñáݳÛÇÝ Ñ³ßíÇã Ù»ù»Ý³Ý»ñÇ å³ïÙáõÃÛáõÝÇó

XX ¹³ñ (1946 Ã.) – ²ØÜ, ö»ÝëÇÉí³Ýdz, ³é³çÇÝ áõÝÇí»ñë³É

¾É»ÏïñáݳÛÇÝ Ñ³ßíÇã Ù»ù»Ý³Ý»ñÇ å³ïÙáõÃÛáõÝÇó XX ¹³ñ (1946 Ã.) – ²ØÜ, ö»ÝëÇÉí³Ýdz, ³é³çÇÝ
¾ÐØ ENIAC – 18 ѳ½³ñ ɳÙå, ù³ßÁ` 30 ï., ½µ³Õ. ٳϻñ»ë` 200 ù.Ù. ²ß˳ïáõÙ ¿ñ ï³ë³Ï³Ý ѳٳϳñ·áõÙ
XX ¹³ñ (1951 Ã.) –
¾ÐØ EDVAC – ÑÇßáÕáõÃÛáõÝÁ` 1024 µ³é, ³Ù»Ý µ³éÁ` 44 »ñÏáõ³Ï³Ý ϳñ·
ٳûٳïÇÏáë æáÝ ýáÝ Ü»ÛÙ³Ý

Слайд 6

¾É»ÏïñáݳÛÇÝ Ñ³ßíÇã Ù»ù»Ý³Ý»ñÇ å³ïÙáõÃÛáõÝÇó

1-ÇÝ ë»ñáõݹ (1945 – 1954 Ã.Ã.) –
ÑÇÙÝ³Ï³Ý ï³ññ»ñÝ

¾É»ÏïñáݳÛÇÝ Ñ³ßíÇã Ù»ù»Ý³Ý»ñÇ å³ïÙáõÃÛáõÝÇó 1-ÇÝ ë»ñáõݹ (1945 – 1954 Ã.Ã.) – ÑÇÙݳϳÝ
»Ý ɳÙå»ñÁ, ÑÇßáÕáõÃÛáõÝÁ` ѳå³ÕÙ³Ý ·Í»ñ; Ù»ù»Ý³Û³Ï³Ý É»½áõ »õ ³ë»ÙµÉ»ñ
2-ñ¹ ë»ñáõݹ (1955 – 1964 Ã.Ã.) –
ÑÇÙÝ³Ï³Ý ï³ññ»ñÝ »Ý ÏÇë³Ñ³Õáñ¹ÇãÝ»ñÁ, ÑÇßáÕáõÃÛáõÝÁ` Ù³·ÝÇë³Ï³Ý (ý»éÇï³ÛÇÝ) ÙÇçáõÏÝ»ñ; Algol, FORTRAN, COBOL; ûå»ñ³óÇáÝ Ñ³Ù³Ï³ñ·
3-ñ¹ ë»ñáõݹ (1965 – 1970 Ã.Ã.) –
ÑÇÙÝ³Ï³Ý ï³ññ»ñÝ »Ý ÇÝï»·ñ³É³ÛÇÝ ë˻ٳݻñÁ (Æê),
¾ÐØ-Ý»ñÇ ÁÝï³ÝÇù` IBM System 360

Слайд 7

¾É»ÏïñáݳÛÇÝ Ñ³ßíÇã Ù»ù»Ý³Ý»ñÇ å³ïÙáõÃÛáõÝÇó

4-ñ¹ ë»ñáõݹ (1970 – 1984 Ã.Ã.) –
ÑÇÙÝ³Ï³Ý ï³ññ»ñÝ

¾É»ÏïñáݳÛÇÝ Ñ³ßíÇã Ù»ù»Ý³Ý»ñÇ å³ïÙáõÃÛáõÝÇó 4-ñ¹ ë»ñáõݹ (1970 – 1984 Ã.Ã.) – ÑÇÙݳϳÝ
»Ý Ù»Í »õ ·»ñÙ»Í ÇÝï»·ñ³É³ÛÇÝ ë˻ٳݻñÁ (ØÆê, ¶ØÆê)
5-ñ¹ ë»ñáõݹ (1974 – *** Ã.Ã.) –
ÙÇÏñáåñáó»ëáñ³ÛÇÝ`
1970-³Ï³ÝÝ»ñÇ ëÏǽµ` i4004 – 4 ϳñ·, 4 Ãí. ·áñÍ.
1974 Ã.` i8080 – 8 ϳñ·
1976 Ã.` i8086/8088 – 16 ϳñ·, ·Í³É³ñÁ` 20 ϳñ·, ÑÇßáÕáõÃÛáõÝÁ` ÙÇÝã»õ 1 Mbyte

Слайд 8

¾É»ÏïñáݳÛÇÝ Ñ³ßíÇã Ù»ù»Ý³Ý»ñÇ å³ïÙáõÃÛáõÝÇó

4-ñ¹ ë»ñáõݹ (1970 – 1984 Ã.Ã.) –
ÑÇÙÝ³Ï³Ý ï³ññ»ñÝ

¾É»ÏïñáݳÛÇÝ Ñ³ßíÇã Ù»ù»Ý³Ý»ñÇ å³ïÙáõÃÛáõÝÇó 4-ñ¹ ë»ñáõݹ (1970 – 1984 Ã.Ã.) – ÑÇÙݳϳÝ
»Ý Ù»Í »õ ·»ñÙ»Í ÇÝï»·ñ³É³ÛÇÝ ë˻ٳݻñÁ (ØÆê, ¶ØÆê)
5-ñ¹ ë»ñáõݹ (1974 – *** Ã.Ã.) –
ÙÇÏñáåñáó»ëáñ³ÛÇÝ`
1982 Ã.` i80286 – i8086 – Ç µ³ñ»É³í³Í ï³ñµ»ñ³Ï. ·Í³É³ñÁ` 24 ϳñ·, ÑÇßáÕáõÃÛáõÝÁ` ÙÇÝã»õ 16 Mbyte,
·áñͻɳϳñ·` Çñ³Ï³Ý »õ å³ßïå³Ýí³Í
1985 Ã.` i80386 ϳ٠i386 - 32 ϳñ·, ûå»ñ³ïÇí ÑÇßáÕáõÃÛ³Ý ¿ç³ÛÇÝ Ï³½Ù³Ï»ñåáõÙ, ÙÇÝã»õ 4 Gbyte,
»ñ»õ³Ï³Û³Ï³Ý i8086, ÏáÝí»Û»ñ

Слайд 9

¾É»ÏïñáݳÛÇÝ Ñ³ßíÇã Ù»ù»Ý³Ý»ñÇ å³ïÙáõÃÛáõÝÇó

4-ñ¹ ë»ñáõݹ (1970 – 1984 Ã.Ã.) –
ÑÇÙÝ³Ï³Ý ï³ññ»ñÝ

¾É»ÏïñáݳÛÇÝ Ñ³ßíÇã Ù»ù»Ý³Ý»ñÇ å³ïÙáõÃÛáõÝÇó 4-ñ¹ ë»ñáõݹ (1970 – 1984 Ã.Ã.) – ÑÇÙݳϳÝ
»Ý Ù»Í »õ ·»ñÙ»Í ÇÝï»·ñ³É³ÛÇÝ ë˻ٳݻñÁ (ØÆê, ¶ØÆê)
5-ñ¹ ë»ñáõݹ (1974 – *** Ã.Ã.) –
ÙÇÏñáåñáó»ëáñ³ÛÇÝ`
1989 Ã.` i486DX – ïñ³Ý½ÇëïáñÝ»ñÇ ù³Ý³ÏÁ` 1.2 ÙÉÝ,
Ý»ñ¹ñí³Í ٳûٳïÇÏ³Ï³Ý Ïáåñáó»ëáñ
1993 Ã.` Pentium (i586), ïñ³Ý½ÇëïáñÝ»ñÇ ù³Ý³ÏÁ` 3.1 ÙÉÝ, »ñÏáõ ÏáÝí»Û»ñ
1997 Ã. Ù³ÛÇë` Pentium II; 1999 Ã.` Pentium III;
2000 Ã. í»ñç` Pentium IV

Слайд 10

øáÙ÷Ûáõï»ñÇ ÁݹѳÝáõñ ϳéáõóí³ÍùÁ

CPU

Output

Memory

Input

øáÙ÷Ûáõï»ñÇ ÁݹѳÝáõñ ϳéáõóí³ÍùÁ CPU Output Memory Input

Слайд 11

²é³çÇÝ ë»ñáõݹݻñÇ Ù»ù»Ý³Ý»ñ

Ðñ³Ù³ÝÇ ï»ëùÁ`

Ð Î

I ѳëó»

II ѳëó»

III ѳëó»

Ð Î

I ѳëó»

II ѳëó»

Ð Î

ѳëó»

²é³çÇÝ ë»ñáõݹݻñÇ Ù»ù»Ý³Ý»ñ Ðñ³Ù³ÝÇ ï»ëùÁ` Ð Î I ѳëó» II ѳëó» III

Слайд 12

²ë»ÙµÉ»ñ É»½áõ (Ý»ñ³ÍáõÃÛáõÝ)

Ìñ³·ñ³ÛÇÝ ³å³ÑáíÙ³Ý ëïáñ³Ï³ñ·áõÃÛ³Ý Ù³Ï³ñ¹³ÏÝ»ñ

²ë»ÙµÉ»ñ É»½áõ (Ý»ñ³ÍáõÃÛáõÝ) Ìñ³·ñ³ÛÇÝ ³å³ÑáíÙ³Ý ëïáñ³Ï³ñ·áõÃÛ³Ý Ù³Ï³ñ¹³ÏÝ»ñ

Слайд 13

²ë»ÙµÉ»ñ É»½áõ (Ý»ñ³ÍáõÃÛáõÝ)

ASM

ML

ML

ML

ML

HLL

- - -

²ë»ÙµÉ»ñ É»½áõ (Ý»ñ³ÍáõÃÛáõÝ) ASM ML ML ML ML HLL - - -

Слайд 14

²ë»ÙµÉ»ñ É»½áõ (Ý»ñ³ÍáõÃÛáõÝ)

Basic

Pascal

C++

ASM

²ë»ÙµÉ»ñ É»½áõ (Ý»ñ³ÍáõÃÛáõÝ) Basic Pascal C++ ASM

Слайд 15

²ë»ÙµÉ»ñ É»½áõ (Ý»ñ³ÍáõÃÛáõÝ)
Ðñ³Ù³ÝÝ»ñ

Ø»ù»Ý³Û³Ï³Ý

²ë»ÙµÉ»ñ

01001001
49

DEC CX

10110100 00001001
B4 09

11000111 00000110 00000000 00000010 11111111

²ë»ÙµÉ»ñ É»½áõ (Ý»ñ³ÍáõÃÛáõÝ) Ðñ³Ù³ÝÝ»ñ Ø»ù»Ý³Û³Ï³Ý ²ë»ÙµÉ»ñ 01001001 49 DEC CX 10110100 00001001
11111111
C7 06 00 00 FF FF

MOV AH, 9

MOV Step, -1

Слайд 16

²ë»ÙµÉ»ñ É»½áõ (Ý»ñ³ÍáõÃÛáõÝ)


îíÛ³ÉÝ»ñ

´ÇûñÇ Ñ³Ù³ñÝ»ñÁ 7 6 5 4 3 2 1 0

´³ÛÃ

²ë»ÙµÉ»ñ É»½áõ (Ý»ñ³ÍáõÃÛáõÝ) îíÛ³ÉÝ»ñ ´ÇûñÇ Ñ³Ù³ñÝ»ñÁ 7 6 5 4 3 2
(byte)

´³é (word) 2-byte (16 bit) - Ù»Ï ïíÛ³É
ÎñÏݳÏÇ µ³é (doubleword) 4-byte (32 bit) - Ù»Ï ïíÛ³É
ø³é³ÏÇ µ³é (quadword) 8-byte (64 bit) - Ù»Ï ïíÛ³É
ä³ñ³·ñ³ý (paragraph) 16-byte (128 bit) - ïíÛ³ÉÝ»ñÇ
¹³ßï
Kilobyte, Megabyte »õ ³ÛÉÝ

Слайд 17

²ë»ÙµÉ»ñ É»½áõ (Ý»ñ³ÍáõÃÛáõÝ)


Ðñ³Ù³ÝÇ Ï³ï³ñÙ³Ý ÷áõÉ»ñ, ÏáÝí»Û»ñ

Ññ³Ù³ÝÇ ÁÝïñáõÙ ù»ß ϳ٠ûå»ñ³ïÇí ÑÇßáÕáõÃÛáõÝÇó
Ññ³Ù³ÝÇ í»ñͳÝáõÙ
ûå»ñ³Ý¹Ý»ñÇ

²ë»ÙµÉ»ñ É»½áõ (Ý»ñ³ÍáõÃÛáõÝ) Ðñ³Ù³ÝÇ Ï³ï³ñÙ³Ý ÷áõÉ»ñ, ÏáÝí»Û»ñ Ññ³Ù³ÝÇ ÁÝïñáõÙ ù»ß ϳ٠ûå»ñ³ïÇí
ѳëó»Ý»ñÇ áñáßáõÙ (ϳ½Ù³íáñáõÙ)
·áñÍáÕáõÃÛ³Ý Ï³ï³ñáõÙ
³ñ¹ÛáõÝùÇ ·ñ³ÝóáõÙ

Íñ³·ñ³ÛÇÝ ³ÝóÙ³Ý Ñ³ëó»Ç ϳÝ˳ï»ëáõÙ

Слайд 18

Սեգմենտներ և հասցեավորում

0
1
2
3
.
.
.
.

Սեգմենտներ և հասցեավորում 0 1 2 3 . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
N-1

Слайд 19

ê»·Ù»ÝïÝ»ñ »õ ѳëó»³íáñáõÙ

0
1
2
3
.
.
.
.
.
M-1

ê»·Ù»ÝïÝ»ñ »õ ѳëó»³íáñáõÙ 0 1 2 3 . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
N-1

Слайд 20

ê»·Ù»ÝïÝ»ñ »õ ѳëó»³íáñáõÙ

0
1
2
3
.
.
.
.
.
M-1
M+0
M+1
M+2

ê»·Ù»ÝïÝ»ñ »õ ѳëó»³íáñáõÙ 0 1 2 3 . . . . .
.
.
.
.
.
.
M+K
.
.
.
.
N-1

Слайд 21

ê»·Ù»ÝïÝ»ñ »õ ѳëó»³íáñáõÙ

ïíÛ³ÉÝ»ñ

0
1
2
3
.
.
.
.
.
M-1
M+0
M+1
M+2

ê»·Ù»ÝïÝ»ñ »õ ѳëó»³íáñáõÙ ïíÛ³ÉÝ»ñ 0 1 2 3 . . . .
.
.
.
.
.
.
M+K
.
.
.
.
N-1

Слайд 22

ê»·Ù»ÝïÝ»ñ »õ ѳëó»³íáñáõÙ

0
1
2
3
.
.
.
.
.
M-1
M+0
M+1
M+2
M+3

ê»·Ù»ÝïÝ»ñ »õ ѳëó»³íáñáõÙ 0 1 2 3 . . . . .
.
.
.
.
.
M+K
.
.
.
.
N-1

Слайд 23

ê»·Ù»ÝïÝ»ñ »õ ѳëó»³íáñáõÙ

0
1
2
3
.
.
.
.
.
M-1
M+0
M+1
M+2
M+3

ê»·Ù»ÝïÝ»ñ »õ ѳëó»³íáñáõÙ 0 1 2 3 . . . . .
.
.
.
.
.
M+K
.
.
.
.
N-1

+ (M+2), (M+3)

Слайд 24

ê»·Ù»ÝïÝ»ñ »õ ѳëó»³íáñáõÙ

0
1
2
3
.
.
.
.
.
M-1
M+0
M+1
M+2

ê»·Ù»ÝïÝ»ñ »õ ѳëó»³íáñáõÙ 0 1 2 3 . . . . .
.
.
.
.
.
.
M+K
.
.
.
.
N-1

Слайд 25

ê»·Ù»ÝïÝ»ñ »õ ë»·Ù»Ýï³ÛÇÝ é»·ÇëïñÝ»ñ

SS
DS
CS

ES

FS

GS

ê»·Ù»ÝïÝ»ñ »õ ë»·Ù»Ýï³ÛÇÝ é»·ÇëïñÝ»ñ SS DS CS ES FS GS

Слайд 26

ê»·Ù»ÝïÝ»ñ »õ ë»·Ù»Ýï³ÛÇÝ é»·ÇëïñÝ»ñ

15 . . . . . . . .

ê»·Ù»ÝïÝ»ñ »õ ë»·Ù»Ýï³ÛÇÝ é»·ÇëïñÝ»ñ 15 . . . . . . .
. . . 3 2 1 0

0 – Çó ÙÇÝã»õ 216 – 1 ϳ٠0 – Çó ÙÇÝã»õ 65 535

0 – Çó ÙÇÝã»õ 220 – 1 ϳ٠0 – Çó ÙÇÝã»õ 1 048 575

CS:n

Слайд 27

òáõóÇã é»·ÇëïñÝ»ñ

15 . . . . . . . . . .

òáõóÇã é»·ÇëïñÝ»ñ 15 . . . . . . . . .
. 3 2 1 0

31 . . . . . . . . . . . . . . 16

15 . . . . . . . . . . . 3 2 1 0

31 . . . . . . . . . . . . . . 16

15 . . . . . . . . . . . 3 2 1 0

31 . . . . . . . . . . . . . . 16

EIP

ESP

EBP

IP

SP

BP

CS:IP SS:SP SS:BP

Слайд 28

Æݹ»ùë³ÛÇÝ é»·ÇëïñÝ»ñ

15 0

31 16

ESI

15 0

31 16

EDI

Æݹ»ùë³ÛÇÝ é»·ÇëïñÝ»ñ 15 0 31 16 ESI 15 0 31 16 EDI

Слайд 29

ÀݹѳÝáõñ Ýå³ï³Ï³ÛÇÝ û·ï³·áñÍÙ³Ý é»·ÇëïñÝ»ñ

15 8 7 0

31 16

EAX

AX

15 8 7 0

31 16

EBX

BX

15

ÀݹѳÝáõñ Ýå³ï³Ï³ÛÇÝ û·ï³·áñÍÙ³Ý é»·ÇëïñÝ»ñ 15 8 7 0 31 16 EAX AX
8 7 0

31 16

ECX

CX

15 8 7 0

31 16

EDX

DX

Слайд 30

ÀݹѳÝáõñ Ýå³ï³Ï³ÛÇÝ û·ï³·áñÍÙ³Ý é»·ÇëïñÝ»ñ

15 8 7 0

31 16

EAX

AX

MOV AH, 1
MOV AL, 1

ÀݹѳÝáõñ Ýå³ï³Ï³ÛÇÝ û·ï³·áñÍÙ³Ý é»·ÇëïñÝ»ñ 15 8 7 0 31 16 EAX AX
AX - ?

MOV AH, 0
MOV AL, 127
ADD AX , 129
AH - ?
AL - ?

MOV AL, 1
ADD AL, 129
AH - ?
AL - ?

Слайд 31

äñáó»ëáñÇ íÇ׳ÏÇ »õ ջϳí³ñÙ³Ý é»·Çëïñ (¹ñáßÝ»ñÇ é»·Çëïñ)

15 . . . 11 10 9

äñáó»ëáñÇ íÇ׳ÏÇ »õ ջϳí³ñÙ³Ý é»·Çëïñ (¹ñáßÝ»ñÇ é»·Çëïñ) 15 . . . 11
8 7 6 5 4 3 2 1 0

31 . . . . . . . . . . . . . . 16

EFlags

Flags

O D I T S Z A P C

Имя файла: Peter-Abel.-IBM-PC-Assembly-Language-and-Programming.pptx
Количество просмотров: 48
Количество скачиваний: 0