.


:




:

































 

 

 

 





( 16 ) , . 16- , , ( ). , :

 

mov ax,5

mov dx,9

add ax,dx

 

5 AX, 9 - DX, . (14) AX. AX DX CX, SI .

, , .

AX (). , (, ).

8 AX AL, 8 - AH. . , AX , . AH 0, AL AL 1.

 

mov ah,0

mov al,ah

inc al

 

AX 1. BX, CX DX 16- , 8-.

BX (). 16- , BX, , . , AL 9:

 

mov ax,0

mov ds,ax

mov bx,9

mov al,[bx]

 

, BX, DS 0 ( AX). . , BX , DS.

AX, CX DX, BX , - BH BL.

CX - . , 10 . :

 

mov cx,10

Begin:

< , >

sub cx,1

jnz Begin

 

Begin JNZ , CX 0. CX Begin, CX 0, - SUB CX,1 JNZ.

- , 8086 , . LOOP. LOOP () 1 CX , CX 0 ( ). :

 

mov cx,10

Begin

< , >

loop Begin

 

CX . AX, BX DX, CX , 8- - CH CL.

DX - , - IN OUT. , DX - 256 65535. , 1000 62:

 

mov al,62

mov dx,1000

out dx,al

 

DX . 32- 16- , 16 DX. DX. 16 AX. AX.. , 16- , 16 DX ( 16 AX).

AX, BX DX, DX , 8- - DH DL.

 

BX, SI , -

. :

 

mov ax,0

mov ds,ax

mov si,20

mov al,[si]

 

8- , 20, AL. SI . :

mov ax,0

mov ds,ax

mov si,20

mov al,[si]

lodsb

 

, SI, AX, SI 1. (, ). , , , , .

DI SI ,

. . :

mov ax,0

mov ds,ax

mov di,1024

add bl,[di]

lodsb

8- , 1024, -

BL. DI SI. SI , (), DI (). , SI DS, DI ES. ( SI DI ( ), DS.) :

 

cld

mov dx,0

mov es,dx

mov di,2048

stosb

 

STOSB AL ( , DI), DI 1.

 

-

 

BX, SI DI, BP , . BX, SI DI DS (, DI, ES), BP SS ( ).

, SS.

:

push bp

mov bp,sp

mov ax,[bp+4]

AX . BP , .

SP . " , - . - , " " (FIFO). , .

SP . - , . , , "" (pushing) . , PUSH . , , () , "" (popping) ( POP).

SP 1000:

 

mov ax,1

push ax

mov bx,2

push bx

pop ax

pop bx

 

SP SP ( ), .

. , ( ). , (, ), , . , . SP, , , .

( IP) , . , , , . , , , , , , . , .

. ( ).

, . CS, , .

 

 

: 1 . 1 20- . 16- . 16- BX. 16- 20- ? , . 16- 16- 20- .

: 4 ( 16),

 

mov ax,1000h

mov ds,ax

mov si,201h

mov dl,[si]

 

DS 1000h, SI 201h. : - 1000:201h. ( ":" 16.

, 1 ":". , , .

@Dat, . :

 

.MODEL SMALL

.DATA

var1 DW 0

.CODE

mov ax,@data

mov ds,ax

END

 

DS , , Var1.

8086 . , 64 , 64 - , 16- . ( 64 ) , , , .

, , ( ), . , , , . , 100 ES, :

 

mov ax,es

add ax,100

mov es,ax

 

, , 64 .

,

":". , 100h ":": 0:100h, 1:F0h, 2:E0h .., ":" 100h.

, . CS , DS , SS - , ( ) ES - , , .

CS 64, , . , , , IP, ( ":") CS:IP. , , CS.

DS ,

64 , . , BX, SI DI. , : , .

ES 64 , . , - , , . 64 . , .

, . , , , , ES:DI. , ES , , .

SS , 64, . , SP ( , , ), , SP .

BP . BP ,

- IBM PC. DOS , . " ", DOS 1. DOS AH INT 21h. AL. , :

mov ah,1

int 21h

 

DOS AL. , DOS , , .

 

 

DOS 2 . 2 AH DL, DOS INT 21h. :

 

mov ah,1

int 21h

mov ah,2

mov dl,al; AL DL

int 21h;

 

. , - .

DOS, DOS 4Ch ( 76 , ). , :

 

.MODEL SMALL

.STACK 100h

.DATA

.CODE

EhcoLoop:

 

mov ah,1; DOS

int 21h;

cmp al,13; ENTER?

jz EchoDone; ,

mov dl,al; DL

mov ah,2; DOS

int 21h;

jnz EchoLoop;

EchoDone:

mov ah,4ch; DOS

int 21h;

END

 

 

- , . , , . , , 5, :

 

.MODEL SMALL

.STACK 200h

.DATA

FactorialValue DW?

Factorial DW?

.CODE

FiveFactorial PROC

mov ax,@Data

mov ds,ax

mov [FactorialValue],1

mov [Factorial],2

mov cx,4

FiveFactorialLoop:

mov ax,[FactorialValue]

mul [Factorial]

mov [FactorialValue],ax

inc [Factorial]

loop FiveFactorialLoop

ret

FiveFactorial ENDP

END

 

FactorialValue Factorial 16- . . FiveFactorial - ( ), . . , FiveFactorialLoop :

 

mov ax,[FactorialValue],

 

LOOP .

 

, . , , , , .. . MOV ( ) . , , .

0, 1, 2 . , . . ( .) , , , . 8086 :

 

mov ax,bx

 

MOV BX AX.

 

 

. ( ) ( ) , . , , . , , .

:

 

mov al,ax

push dl

xchg al,dl

ror dx,cl

in al,dx

inc sl

 

:

 

mov al,1

add [BaseCount],cx

cmp si,[bx]

 

. , . , (), - (). , . , :

 

mov cx,1

mov dx,2

sub dx,cx

 

CX 1, DX - 2, -

DX CX (1) DX. SUB CX , (). DX - , . SUB () , " CX DX".

 

 

, . SI 4, , SI 0, :

 

CountByFourLoop:

dec si

dec si

dec si

dec si

jnz CountByFourLoop

 

:

 

CountByFourLoop:

sub si,1

jnz CountByFourLoop

 

(-) , . , A 65, :

 

sub al,'A'

sub al,65

, , .

- , - ( , ). -, , , . 5, :

 

mov ax,5

push ax

 

 

SP. , BP, MOV. , :

 

mov ax,[bp+4]

 

AX BP+4.

PUSH POP. PUSH , POP . , :

 

mov ax,1

push ax

pop bx

 

( 1) AX , 1 BX.

 

XCHG. , . , :

 

xchg ax,dx

 

AX DX, :

 

push ax

mov ax,dx

pop dx

 

ADD SUB 8- 16- . 32- , ADC SBB.

, ( ), , . , 1, (10000h) 16 . ADC ADD, ( ). , , ( ) ADD, - ADC, . , CX:BX, , , DX:AX:

add ax,bx

adc dx,cx

DoubleLong1 DoubleLong2:

 

mov ax,[DoubleLong1]

add [DoubleLong2],ax

mov ax,[DoubleLong1+2]

adc [DoubleLong2+2],ax

mov ax,[DoubleLong1+4]

adc [DoubleLong1+4],ax

mov ax,[DoubleLong1+6]

adc [DoubleLong2+6],ax

 

SBB , ADC. SBB , , . , , CX:BX, , DX:AX:

 

sub ax,bx

sbb dx,cx

 

ADC SBB , , /, , . , CX:BX DX:AX :

 

add ax,bx;

sub si,si; SI ( 0)

adc dx,cx; ...

; ,

;

;

;

8086 . , , .

MUL 8- 16- , 16- 32- .

8- AL, 8- . MUL 16- AX. , :

 

mov al,25

mov dh,40

mul dh

 

AL DH, (1000) AX.

16- . AX, 16- . 32- MUL DX:AX, ( ) 16 AX, ( ) 16 - DX. , :

 

mov ax,1000

mul ax

 

AX 1000,

, ( 1000000) DX:AX.

, , , IMUL 8- 16- . , , IMUL MUL. , :

 

mov al,-2

mov ah,10

imul ah

 

AX -20.

32- 16-, 16- 8-. 16- 8-.

16- 8- AX. 8- 8- . DIV 8- AL, 8- - AH. , :

 

mov ax,51

mov dl,10

div dl

 

5 (51/10) AL, 1 (

51/10) - AH. 8- . , 16- 8- 255. , 0 ( 0). :

 

mov ax,0fffh

mov bl,1

div bl

0 ( , 0 , 0 ).

32- 16- DX:AX. 16- 16- . , :

 

mov ax,2

mov dx,1; DX:AX 10002h

mov bx,10h

div bx

 

1000h ( 10002h 10h) AX, 2 ( ) - DX.

, , . DIV, - IDIV. , :

 

.DATA

TestDivisor DW 100

.CODE

 

mov ax,-667

cwd; DX:AX -667

idiv [TestDivisor]

 

-6 AX -67 DX.

 

 





:


: 2016-11-12; !; : 613 |


:

:

.
==> ...

1673 - | 1470 -


© 2015-2024 lektsii.org - -

: 0.205 .