.


:




:

































 

 

 

 


. EXE




ղ PC

 

' 8086/8088 : , , , , () . , . :

- (Intel);

- ' (ROM 40);

- ' (RAM 512 );

- -.

, (), , ' .

, ', , "" 20 .

"" ' , . 8088 16- , . 8088 8086, : 8088 8- ( 16- ) , , ' . . 80286 80386 8086.

. 1 : () (ز). , ز . - (), () . ֳ , ( , ).

(ز): , : -, ز , ' -. -, ' 1 .

ز . , ', ز . 4 , , ز " " , .

, ز . ' /. . , ز '. , .

'

, ' '. ' () ROM (read-only memory). ROM , ( ) . ROM " " .

ROM : ' ROM ' (RAM) (, DOS). , ROM BIOS (Basic Input/Output System) /.

', , RAM (Random Access Memory) , ', , . RAM .

, RAM ', ' . , ROM DOS RAM. ( DOS, DOS). DOS DOS . RAM. DOS ', () . RAM , . RAM. RAM.

'. - 64 , RAM ': 4 64K = 256K. - . , , .

RAM ', ROM - . ³ ' ', 256K RAM ' . RAM , 640 , DOS. ROM 768 / . ROM, 960 ', , .

RAM - '.

' 00 - '. '. 1025. ' - 0401 . - 04 - 01. ' : , - . , 0401h ' 5612 5613, :

|01| |04|

5612, 5613

, ' . , , ' .

 

.1. .

 


, , - , 16 . - 64 , , . :

1. . , . , , , . (CS) .

2. . , , . (DS) .

3. . , . (SS) .

, (ES), . .

' . . (16-) 0000h FFFFh 0 65535. - , ' . , 0, - 01 65535.

, , . 045F ' 0032. , 045F, 045F0, . ij ' :

DS: 045F0

: 0032

: 04622

8086/8088 ' ? 16 . , . FFF0h 65520 ( ) . , , . . nnnn, ' , ( . ), . nnnn0. , . FFFF0 1048560 . , . F 1111, .

80286 24 , FFFFF0 16 , 80386 .

8086/8088 14 , , , ' . (16 ) . :

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

80286 80386 , 16-. ֳ .

CS, DS, SS ES

64 ', . , .

1. CS. . (IP) , . CS.

2. DS. . , , .

3. SS. .

4. ES. '. ES ' DI. ES, .

: AX, BX, CX DX

" ". , . ˳ (high), a - (low). , CX : CH CL, . CX, CH CL, :

MOV CX,00

MOV CH,00

MOV CL,00

1. AX. AX -, . , , AX. , AX.

AX: | AH | AL |

2. BX. BX . , "" . - .

BX: | BH | BL |

3. CX. CX . ³ . CX .

CX: | CH | CL |

4. DX. DX . ³ - , DX AX.

DX: | DH | DL |

- 8-, 16- .

: SP BP

SP BP . г .

1. SP. ', . ' SS .

2. BP. : .

: SI DI

.

1. SI. . SI ' DS.

2. DI. . DI ' ES.

: IP

IP , . , , DOS DEBUG .

' 16 . . :

O () .
D () ( ' ).
I ()
T ( ) . , DOS DEBUG , '.
S () ̳ (0 - 1 - ).
Z () (0 - , 1 )
A ( ) ̳ 3- 8- , .
P ( ) 8- (1 - 0 - ).
C () ̳ , , .

O, S, Z, C , D .


.EXE

 

.EXE :

TTLE .EXE

STACK SEGMENT PARA STACK 'STACK'

db 200h DUP (?)

STACK ENDS

DATA SEGMENT WORD 'DATA'

HelloMessage db 'Hello, world',13,10,'$'

DATA ENDS

CODE SEGMENT WORD 'CODE'

ASSUME cs:CODE, ds:DATA

ProgramStart:

push ds;initialize stack segment

sub ax,ax;initialize stack segment

push ax;initialize stack segment

 

mov ax,Data;initialize data segment

mov ds,ax;initialize data segment

 

mov dx,OFFSET HelloMessage;DS:DX ponts to the HelloMessage

mov ah,09;DOS strng prnt functon

nt 21h;prnt the HelloMessage

mov ah,4Ch;DOS termnate program functon

nt 21h;end of the program

CODE ENDS

END ProgramStart

 

Turbo-Assembler .

 

' (Program Segment Prefx, PSP), . PSP 256 , . ϳ PSP . : ES DS PSP, CS - , SS - . IP ( END).

 

:

DS PSP, , DS . , (, ). DS , ( , , , AX). :

 

push ds;store DS in stack

sub ax,ax;zero AX

push ax;store zero in stack

 

mov ax,Data;store Data segment address in DS

mov ds,ax

 


' .EXE :

 

 

64KB.

RET DS, , DOS.

 

() - . . .

 

.EXE ‑ :

DOSSEG

.MODEL SMALL

.STACK 100h

.DATA

HelloMessage db 'Hello, world', 13, 10, '$'

.CODE

push ds;initialize stack segment

sub ax,ax

push ax

mov ax,@data

mov ds,ax;set DS to pont to the data segment

mov ah,9;DOS prnt strng functon

mov dx,OFFSET HelloMessage;pont to "Hello, world"

nt 21h;dsplay "Hello, world"

mov ah,4ch;DOS termnate program functon

nt 21h;termnate the program

END

 

Turbo-Assembler .EXE- :

C:\>TASM\tasm flename.asm <Enter>

- flename.obj. ' /l /la flename.lst, .

 

C:\>TASM\tlnk flename.obj <Enter>

- flename.exe, .

 

 





:


: 2017-02-25; !; : 899 |


:

:

- , , .
==> ...

1736 - | 1516 -


© 2015-2024 lektsii.org - -

: 0.063 .