.


:




:

































 

 

 

 


XCHG XLAT




XCHG , . :

XCHG AL, SEMA; AL

XCHG CX,[BP]; CX

XCHG AH,DL; -

XCHG AX,CX; -

XCHG .

XLAT AL 256 , BX (. ).

XLAT :

a) AL BX;

) ( DS) AL.

XLAT . XLAT . XLAT ASCII EBCDIC.

0 9 ASCII EBCDIC. ASCII 30...39, EBCDIC - F0...F9. XLAT . XLAT BX, (: ASCNO)- AL.

:

MOV bx, offset XLTBL

MOV AL,ASCNO

XLAT

XLAT AL , .. BX AL. , , AL 32h, XLTBL+50. 0F2h (2 EBCDIC), XLAT AL.

XLAT.

ASCNO ( ASCII) XLTAB. EBCNO.

Assume cs:preob, ds:tabl
tabl segment
ascno db 33h, 35h, 32h, 35h, 37h, 33h
xltab db 0f0h, 0f1h, 0f2h, 0f3h, 0f4h
db 0f5h, 0f6h, 0f7h, 0f8h, 0f9h
ebcno db 6 dup(?)
tabl ends
Preob segment
start:    
  mov ax, tabl ; ds
  mov ds, ax
  mov di, offset ebcno ; di
  mov si, offset ascno ;
  mov bx,offset xltab ; , , bx
  mov cx, 6 ; A20:
  mov al, [si]; al
  sub al,30h ; ascii
  xlat ; al ebcdic
  mov [di], al ;
  inc di ;
  inc si ;
  loop a20 ; cx <>0, 20
  ret  
  Preob ends  
  End start  

 

1.

, :

1. : 2516h, 630h, 1841h, 3345h, 123h;

2. '';

3. '$'.

:

1. DS;

2. (1) , ;

3. (3), 10h, (3). , .2.

4. SI (2), BX - (3), ;

5. , SI ( ), (3) , (2).

6. , . . .

 

2.

, :

1. : 2499h, 2106h, 333h, 1821h, 3CB6h;

2. '';

3. '$'.

:

1. DS;

2. (1) , ;

3. (3), (3).

, .2.

4. DI (2), BX - (3), ;

5. , SI ( ), (3) , (2).

6. , . . .

 

3.

, :

1. : 1389h, 2145h, 326h, 2821h, 2265h;

2. '';

3. '$'.

:

1. DS;

2. (1) , ;

3. (3), 2 (3).

3 , .2.

4. DI (2), BX - (3), ;

5. , SI ( ), (3) , (2).

6. , . . .

 

4.

, :

1. : 4516h, 2221h, A212h, 1C10h, 6115;

2. '';

3. '$'.

:

1. DS;

2. (1) , (3);

3. (1) , 11 (3), (3).

4. SI (2), BX - (3), ;

5. , SI ( ), (3) , (2).

6. , . . .

 

5.

, :

1. : 4576h, 27F0h, 3FF1h, 77F1h, 3713;

2. '';

3. '$'.

:

1. DS;

2. (1) , (3), , 4D (3);

3. (1) , (3),.

4. SI (2), BX - (3), ;

5. , SI ( ), (3) , (2).

6. , . . .

 

6.

, :

1. : 1F5h, A781h, CF84h, C0A4h, A483h

2. ''

3. '$'.

:

1. DS;

2. (1) , (3);

3. (1) , 2h (3), 95 (3).

4. SI (2), BX - (3), ;

5. , SI ( ), (3) , (2).

6. , . . .

 

7.

, :

1. : 324Ah, 765Eh, AEF1h, 45CDh, 8685h;

2. '';

3. '$'.

:

1. DS;

2. (1) ;

3. 71h (3), 41h, (3). (3).

4. SI (2), BX - (3), ;

5. , SI ( ), (3) , (2).

6. , . . .

 

8.

, :

1. : 45h, 16h, 22h, 21h, 3Ch, F1h;

2. : 33h, 44F4h;

3. '';

4. '$'.

:

1. DS;

2. (2) (1), 50h (4);

3. (1) (2), 32h (4), 56h (4).

4. SI (3), BX - (4), ;

5. , SI ( ), (3) , (2).

6. , . . .

 

9.

, :

1. : 1245h, FAC1h, 12C1h, 45C6h;

2. 35h, 33h, F4h

3. '';

4. '$'.

:

1. DS;

2. (1), (4), 23h (4);

3. (2) .2 (2), (4).

4. SI (3), BX - (4), ;

5. , SI ( ), (3) , (2).

6. , . . .

 

10.

, :

1. : 1245h, FAC1h, 12C1h, 45C6h;

2. 27h, 80h, ABh

3. '';

4. '$'.

:

1. DS;

2. (1). (2), (4), 53h (4);

3. (2) .2 (2), (4).

4. SI (3), BX - (4), ;

5. , SI ( ), (3) , (2).

6. , . . .

 

11.

, :

1. : 245Fh, 7AC1h, 128Ch, 445Ch;

2. 2Ch, 90h, 61h

3. '';

4. '$'.

:

1. DS;

2. (1) . (2), (4), 30h (4);

3. (2) .2 (2), (4).

4. SI (3), BX - (4), ;

5. , SI ( ), (3) , (2).

6. , . . .

 

12.

, :

1. : 245Fh, 7AC1h, 128Ch, 445Ch, 2233h;

2. 2Ch, 10h, 61h;

3. '';

4. '$'.

:

1. DS;

2. (1) . 61h, (4), (2) (4);

4. (4) ( AL) (4);

5. , SI ( ), (3) , (2).

6. , SI ( ), (4) , - (3).

7. , . . .

 

. '$'. 21h, AH - 9h, DX , :

MOV DX, OFFSET T1

MOV AH, 09h

INT 21h

5

MUL. :

: AL, . . , .

. , 1- 3- . , , :

Data segment
A DB 0fah, 07h, 0ach
B dw?
Data ends
Code segment
...  
  Mov al, A ; AL
  Mul A+2 ;
  Mov B, ax ;
  ...  

 

: A, . , : D, .

. , :

Data segment
A DW 0f3a7h, 20e7h, 0a4ech
B dw?,?
Data ends
Code segment
  ...  
  Mov ax, a  
  Mul a+2 ; DX:
  Mov b, dx ;
  Mov b+2, ax ;
  ...  

 

DIV, :

: A, . , L.

. .

:

Data segment
AC DW 0ecdah, 0CB78h
CC DB 0d7h, 0cdh
C1 dw?,?
C2 db?,?
Data ends
Code segment
   
  Mov ax, ac ;
  Div cc+1  
  Mov c2, ah ;
  Mov c2+1, al ; : MOV C1, A

 

: DX:A, . DX, X.

. . , :

 

Mov dx, ac ; DX
Mov a, ac+2 ; X
Mov bh, cc ;
Mov bl, cc+1 ;
Div bx ;
Mov c1, dx ;
Mov c1+2, ax ;

 

1

, : X1=681h, X2=356h, X3=FE32h, X4=A33h, X5=D310h X6=C12Ah. (X1 + X2 + X3)/ X6. , . . .

2

, : Bh, CDh, EFh, 4Ah, CFh, 56h. , . 54h. , . , .

3

, : Fh, 3Dh, 8Ah, 5Dh, FCh, EAh, EEh. , . , . . .

4

, : FDh, FFh, A3h, 3Fh, F2h : 366h, 5134h. , . , , .

5

, : C3h, F3h, 5Fh, 66h, E4h : 534h, 6FC1h, D1E2h. , . . , .

6

, A031h, 8FFAh, 5FD3h, 4FAFh FAh, CDh. , , , . .

7

, : FACDh, FE37h : 5Ah, 6Fh, AAh, BCh, CDh. , , . . , . .

8

, FCC1h, CF11h FCh, FFh, 88h. . . . . .

9

, : E010h, 1E4Ah, 2BC7h, B781h : AAh, ABh, ACh. . . , . .

10

, : F11Fh, A332h, 2878h : ADh, DDh, CDh, 1Dh. . . , . .

11

, : 1Dh, D7h, ECh, C7h, ACh 87FEh, 7FA8h. . . , . .

12

, : AABBh, BC1Dh, EC2Ch, 146Dh DFh, 7Fh, 8Ah. , . , , .

6

, IRET. ( IP, CS). - IP . - NEAR. . IP CS, , , . - FAR.

. . .

GOTO <>.

:

JMP <> - , 16 IP ( IP , JMP);

JMP <> - 4 ;

JMP mem/reg - .

, , , , , . , . , , - . , . :

;

;

.

, , . , h 43h. , . .

/
  JE / JZ / Z
  JNE / JNZ / Z
  JA / JNBE / Z, C
  JAE / JNB / C
  JB / JNAE / C
  JBE / JNA / C, A
  JE / JZ / Z
  JNE / JNZ / Z
  JG / JNLE / Z, S, O
  JGE / JNL / S, O
  JL / JNGE / S, O
  JLE / JNG / Z, S, O
  JS () S
  JNS () S
  JC C
  JNC C
  JO O
  JNO O
  JP / JPE P
  JNP / JPO P
         

 

, JCXZ, CX, , , .

CALL . . , RET . . . ( NEAR), - ( FAR). IP, IP CS. :

CALL Subr

CALL AX

CALL [BX][SI].

:

LOOP <>

LOOPE / LOOPZ <>

LOOPNE / LOOPNZ <>

. LOOP ( ), , , ¹0 - , .

LOOPE LOOPZ , , , (¹0) Z=1. . LOOPNE LOOPNZ , : (¹0) Z=0.

. 10 . , 9. , 5. :

 

name cikl
assume cs:cod, ds:data
data segment
aa db 9h, 8h, 3h, 6h, 5h, 2h, 3h, 7h, 1h, 5h
data ends
cod segment
start proc far
  push ds  
  mov ax,0  
  push ax  
  mov ax, data  
  mov ds,ax  
  lea bx,aa ;
  mov ah,0eh ;
  mov cx,10 ;
l1: mov al,[bx] ; AL
  cmp al,5 ; 5
  jbe l2 ; - ,
  add al,30h ; ASCII
  int 10h ; ,
  mov al,20h ;
  int 10h ;
l2: inc bx ;
  loop l1 ; ,
  ret  
  start endp  
  cod ends  
  end start  

 

INT 10h. : AH, AL. AH 0h ( ), AL , .

ASCII 0...9 30h...39h , , , ASCII. , . , , . :

SHL < >, < >.

. 4 AX DX. , AX:

MOV DX, 0

MOV CL, 4

C2: SHL DX, 1

SHL AX, 1

ADC DX,0

DEC CL

JNZ C2

DX AX.

. 200 , .

 

  .  
  Mov cx, 200 ;
  Lea bx, t ; ( )
  Mov ax, 0  
l2: Cmp [bx], ax ; 0
  Jz l1 ;,
  Inc bx ; 1
  Dec cx ; 1
  Jnz l2 ; L2, 0
l1: Mov ta, bx ;
  .  

 

 

1

: F501h, 3196h, 5737h, AA88h, CEDh, FA88h. 4000h . 10h 0h.

2

: 3845h, 4367h, 3157h, F501h, 3F96h, 8737h, EAA8h. 3500h . 10h 0h.

3

: 38h, 45h, F4h, 36h, A7h, CFh, 51h, 3Fh, 96h. 43h . 10h 0h.

4

: FAh, E8h, 77h, F4h, 96h, CFh, 57h, 8Fh, 9Ah. 67h . 10h 0h.

5

: F345h, 4967h, 3156h, F501h, 3F96h, 8737h, EAA8h. 7888h . 10h 0h.

6

: FA45h, A667h, 3156h, F501h, 3F96h, 8967h, ECA8h, 76CDh. 0000h . 10h 0h.

7

: 9694h, 7389h, F481h, 7314h, 2224h, 124h. , 7FF1h . 10h 0h.

8

: 3147h, 5364h, 8102h, AF39h, B786h, A134h. , 6781h . 10h 0h.

9

: 7131h, 7AFFh, 9345h, 7FA1h, 6AD3h, 2784h, 2DACh, 5A36h, FF45h. , 6127h . 10h 0h.

10

: FA35h, AA12h, 8FCDh, 2534h, 5781h, 73A6h, FF47h. , 37AFh . 10h 0h.

11

: CDh, FCh, FAh, 97h, 38h, F4h, 36h, A7h, CFh, 51h. , ADh . 10h 0h.

12

: 5Fh, 4Ah, 31h, 89h, 7Dh, 91h, CDh, FCh, FAh, 97h, 38h. , 8Ah . 10h 0h.

 

7

( ) . , CALL. , . . , CALL, . , RET. .

PROC ENDP. PROC , ENDP - . :

<> PROC <>

...

...

<> ENDP

. , . NEAR FAR ( NEAR). PROC/ENDP , . CALL RET.

. , 15h. :

name procedur
assume cs:cod, ds:data
data segment
aa db 9h,8h,3h,6h,5h,2h,3h,7h,1h,5h
data ends
cod segment
start proc far
  push ds  
  mov ax,0  
  push ax  
  mov ax, data ;
  mov ds,ax ;
  lea bx,aa ; BX
  mov ah,0eh ; AH
  mov cx,10 ;
l1: mov al,[bx] ; AL
  add al,15h ; 15h
  call sym ;
l2: inc bx ;
  mov al,20h ; AL
  int 10h ;
  loop l1  
  ret  
  start endp  
  sym proc  
  push cx ;
  mov dl,al ; DL
  mov cl,2 ;
p4: mov dh,0 ; ,
  mov ch,4 ;
p1: shl dh,1 ;
  shl dl,1 ; C
  adc dh,0 ; C ( ) DH
  dec ch ;
  jnz p1 ; 0 -
  mov al,dh ; AL
  cmp al,9 ; - , -
  ja p2 ; , -
  add al,30h ; (ASCII )
  jmp p3  
p2: add al,37h ; .
p3: int 10h ;
  loop p4  
  pop cx  
  ret  
  sym endp  
  cod ends  
  end start  

 

, ASCII SYM. .

, , . . - . AX. AH - , AL - . , . . FAR. , , .

push ds;

mov ax,0;

push ax; PSP

 

ASCII 0...9 30h...39h , ah, bh,...fh 41h,...,46h, , , ASCII. .

1

: F501h, 3196h, 5737h, AA88h, CEDh, FA88h. 4000h . .

2

: 3245h, 4E1Ah, 315Ah, F501h, 3F96h, 8737h, EAA8h. 3500h . .

3

: 38h, F5h, F4h, 36h, A7h, CFh, 51h, 3Fh, 96h. 13h . .

4

: FAh, E8h, 7Ah, F4h, 96h, CFh, 51h, 3Fh, 9Ah. 67h . .

5

: 734Eh, 4E67h, 3156h, F501h, 3F96h, 8737h, EAA8h. 8888h . .

6

: F345h, A6C7h, 3156h, F501h, 3F96h, 8737h, EAA8h. , E600h, . .

7

: 7FFFh, 7AC9h, F481h, 7314h, 2224h, 124h. , 7FF1h . .

8

: 3147h, 5364h, 71DEh, AF39h, B786h, A134h. , 6781h . .

9

: 4131h, 7AFFh, 9345h, 7FA1h, 6AD3h, 2784h, 2DACh, 5A36h, FF45h. , 6127h . .

10

: FA35h, AA12h, 8FCDh, 2A3Eh, 5781h, 73A6h, FF47h. , 37AFh . .

11

: CDh, FCh, FAh, 9Eh, 3Eh, F4h, 36h, A7h, CFh, 51h. , ADh . .

12

: 5Fh, 4Ah, 31h, 89h, 7Dh, 91h, CDh, FCh, FAh, 97h, 38h. , 8Ah . .

.8

NOT (), AND (), OR (), XOR ( ) TEST, , ( ). , .

:

 

AND OR XOR TEST mem/reg, mem/reg mem/reg, mem/reg mem/reg, mem/reg mem/reg, mem/reg AND OR XOR TEST mem/reg, data mem/reg, data mem/reg, data mem/reg, data AND OR XOR TEST ac, data ac, data ac, data ac, data

 

NOT mem/reg

. , . : 1) ; 2) ACh; 3) ; 4) ( - ). :

 

assume cs:cod, ds:data
data segment
aa db 40 dup(?)
data ends
cod segment
start proc far
assume cs:cod, ds:data
data segment
aa db 40 dup(?)
data ends
cod segment
start proc far
  push ds  
  mov ax,0  
  push ax  
  mov ax, data ;
  mov ds,ax ;
  lea bx,aa ;
  mov cx,10 ;
l1: mov ah,0 ;
  int 16h ;
  mov dl,al ; DL
  not al ;
  mov [bx],al ;
  mov al,dl ; DL
  and al,0ach ;
  mov 1[bx],al ;
  mov al,dl ; DL
  xor a,10100B ; 3-
  mov 2[bx],al ; 3-
  mov al,dl ; DL
  cmp cx,10 ; : , , -
  je l2
  or al,dh
l2: mov 3[bx],al ; 4-
  mov dh,dl ; DH ;
  add bx,4
  loop l1  

 

 
 

INT 16h, . 0, , -. AL . :

MOV AH,0

INT 16h.

. 3.10, count - , . 1 ( ) CL. , - CL. , , ( ). () . . C . C O. S, Z P .

RCL, RCR, ROL, ROR - . RCL RCR .

SHL SHR - . , . SAL SAR . , , , . .

. 32 , .





:


: 2016-11-02; !; : 857 |


:

:

, .
==> ...

1708 - | 1488 -


© 2015-2024 lektsii.org - -

: 0.264 .