.


:




:

































 

 

 

 


8086/8088. 6 - , , , , , . .

8086/8088 , .

MOV MOV ,
PUSH PUSH
POP POP
XCHG XCHG ,
XLAT XLAT AL
-
IN IN ,
OUT OUT ,
LEA LEA 16, 16
LDS LDS 16, 32 DS:16
LES LES 16, 32 ES:16
LAHF LAHF
SAHF SAHF
PUSHF PUSHF
POPF POPF

- V , . ( ) , . :

mov ,Table { }

mov Table,ah { }

mov ds,ax { }

mov es:[bx],ax { : }

mov ch,-17 { }

mov Table,$FF { }

MOV :

  • , ,

mov Mem1,Mem2

mov ax,Mem2

mov Mem1,ax

  • DS, ,

mov DS,Data_Seg

:

mov ax,Data_Seg

mov ds,ax

  • , ,

mov es, ds

mov ax,ds

mov es,ax

  • CS; ( ) CALL JMP; , RETF ( ).

, PUSH POP. , .. . PUSH 2 SP, SS: SP. SS: SP, SP 2. , SP , - . ( - ), , , .. . - , . , SP , . , .

LEA () . OFFSET, . :

var

X: Word;

..........

asm

mov ax, OFFSET X { X }

lea ax,X {To }

end;

, LEA , .

- LDS LES 16- -, - DS ES, .. ( ).

ADD ADD ,
ADC ADC , ,
ASCII
DAA DAA -
INC INC
SUB SUB ,
SBB SBB ,
AAS AAS ASCII
DAS DAS -
DEC DEC
NEG NEG
,
MUL MUL
IMUL IMUL
A ASCII
DIV DIV
IDIV IDIV
AAD AAD ASCII
CBW CBW
CWD CWD

, , , - . . .. Byte Word, Shortlnt Integer. - 4 . 2 ( - ), - ( ). (ADD, SUB, MUL, DIV) - , .

AND AND , AND
OR OR , OR
XOR XOR , XOR
NOT NOT NOT
TEST TEST ,
SAL/SHL SAL ,
SAR/SHR SAR ,
ROL ROL ,
ROR ROR ,
RCL RCL ,
RCR RCR ,

, , . AND, OR, XOR NOT , . TEST AND, , : CF OF, PF, ZF, SF AF ( ZF 1 , ). SHL/SHR ROLIROR , , . ,

mov al,1 { AL }

shr al,1 { , 1 }

AL 0 ( CF), SHR ROR $80=128 ( ).

, 1 , CL.

CALL CALL
RET RET [ ]
JUMP JUMP
JA/JNBE JA _ , ( )
JAE/JNB JAE _ ,
JB/JBAE/JC JB _ ,
JBE/JNA JBE _ ,
JCXZ JCXZ _ , =0
JE/JZ JE _ ,
JG/JNLE JG _ , ( )
JGE/JNL LGE _ ,
JL/JNGE JL _ ,
JLE/JNG JLE _ ,
JNC JNC _ ,
JNE/JNZ JNE _ ,
JNO JNO _ ,
JNP/ JPO JNP _ ,
JO JO _ ,
JP/JPE JP _ ,
JS JS _ ,
LOOP LOOP _
LOOPE/LOOPZ LOOPE _ ,
LOOPNE/LOOPNZ LOOPNE _ ,

CALL, RET, JMP , - ( -128...+127 ). ( Options/Compiler/Force far calls {F+}) , , - .

CALL . CALL ( ) , IP ( CS:IP) , CALL . ( ) 16- 32- - . () , {F+} FAR , . CALL :

Procedure MyProc; Far;

.......

asm

call FAR MyProc { }

.......

end;

(.. ). CS, - .

RET 16- IP, CS, IP.

, - 128 . , , , JMP CAL, :

,0 { }

jne@NotZero {AX=0?}

jmp IsZero { - }

....... { - }

.......

/ , / - .

, , , - . - _ ( ) :

JA JG
JE JE
JB JL
JAE JGE
JBE JLE
JNE JNE

:

m ,5 {>5?}

ja @AboveS {, - }

b,- 3 {<=-3?}

jle @LessM3 {, }

LOOP/LOOPE/LOOPNE . . LOOP , . LOOPE/LOOPNE , ( ) ZF .

, , :

var

: array [1..1000] of Byte;

.......

asm

mov ex, It)00 { }

lea bx,AOB { }

dec bx { }

{ }

@@Test: inc bx { }

cmp BYTE PTR [bx],0 { }

loopne Test { }

jnz NotZero { }

....... { }

end;

MOVSB MOVSB
MOVSW MOVSW
CMPSB CMPSB
CMPSW CMPSW
SCASB SCASB
SCASW SCASW
LODSB LODSB
LODSW LODSW
STOSB STOSB
STOSW STOSW

. , 64 . , . REP/REPE/REPNE, , .

. -, - DS:SI, - - ES:DI. , . -, SI/DI . 1 2 , , DF , , 1.

:

var

,: array [1..250] of Integer;

.......

asm

lea si, A { - SI ()'}

push ds pop es { ES:= DS}

lea di,B { - DI ()}

mov ex,250 {- }

ld { - }

rep movsw { 500 }

end;

DS , . ES, , , (. push ds, popes).

INT INT
INTO INTO
IRET IRET

. INT (INTO) , CS IP, 4- , INT, 4 - INTO. , CALL , . , , : TF IF; TF , 1 4, IF .

INTO , OF. IRET : 3 IP, CS .

STC STC
CLC CLC
CMC CMC CF
STD STD
CLD CLD
STI STI
CLI CLI
HLT HLT
WAIT WAIT
ESC ESC ,
LOCK LOCK
NOP NOP

.

HAL , .

WAIT 5 : , WAIT, , . () .

ESC . . . , - .

LOCK , . , ().

 

 



<== | ==>
| (10003)
:


: 2016-09-03; !; : 292 |


:

:

,
==> ...

2001 - | 1767 -


© 2015-2024 lektsii.org - -

: 0.06 .