Tutorial Sezione Assembler

Dettaglio Istruzioni 

Le Schede del Tutorial

  Istruzioni della Cpu 80x86

SCHEDA n° 07 [I/ 130 di 198] 

    

    NEG - Esegue il complemento a 2 dell'operando
     
bulletQuesta istruzione sottrae l'operando destinazione da zero; in pratica esegue il suo complemento a 2.
bulletIl risultato è lasciato nell'operando di destinazione, al posto di quello di partenza.
bulletL'operando può essere un registro o una locazione di memoria, con dimensione di un byte, di una word o di una doubleword ( con 80386/486).
bulletSe l'operando è nullo (0, 00H) l'istruzione non ha effetto e la flag C (Prestito/Carry) è lasciata a 0; in tutti gli altri casi la flag C è lasciata a 1.
bulletSe l'operando è il massimo valore negativo (per esempio - 128=80H o - 32768=8000H) l'istruzione non ha effetto e lascia la flag O (Overflow) a 1.
bulletLe sue caratteristiche sono riassunte nella seguente tabella (leggi le istruzioni Legenda della Tabella):
         
        NEG Destinazione    Destinazione  <<  (Destinazione) complemento a 2
 

Esempio di Applicazione

Cicli di Clock Mem
Acces

Bytes
Flag   influenzate
Mnemonico Operandi 86 268 386 486 O D I T S Z A P C

NEG

BX

3 2 2 1 no 2 #         # # # # #

NEG

[Depo01]

16+EA 7 6 3 2 2,4

NEG

[Depo02]

24+EA
                    

NEG

AL

3 2 2 1 no 2
         
bulletLa tabella evidenzia le tipologie degli operandi di questa istruzione: con registro e con memoria.
bulletLa figura seguente mostra le risorse richieste da questa istruzione in funzione degli operandi coinvolti (leggi le istruzioni):
          

Addr

Codifica Masm

Sequenza Bytes

Istruzione

0100
0101
55
55AA
55
AA 55
Depo01 
Depo02
DB 55H
DW 55AAH
---- ---------------- ----------------- ------- ----------------------
0103
0105
0107
010B
0110
0114
0119
F6 D0
F7 DB
F6 1E 0100
2E F6 1E 0100
F7 1E 0101
2E F7 1E 0101
66 F7 dotto
F6 dotto
F7 DB
F6 1E 00 01
2E F6 1E 00 01
F7 1E 01 01
2E F7 1E 01 01
66 F7 dotto
NEG    AL
NEG    BX
NEG    [Depo01]
NEG    CS:[Depo01]
NEG    [
Depo02]
NEG    CS:[
Depo02]
NEG    EAX
     
bulletIl meccanismo del complemento a 2 (o sottrazione da zero) è molto semplice:
bulletsi complementa l'operando, bit dopo bit.
bulletsi somma 1 al risultato.
     

55H = 0101 0101
-----------------
      1010 1010 +
              1 =
      ---------
ABH = 1010 1011 

55H = 0101 0101
-----------------
      0000 0000 -
      0101 0101 =
      ---------
ABH = 1010 1011 
     
bulletPer capire meglio l'azione di quest'istruzione vediamo in dettaglio, per esempio, l'effetto sul registro AL e sul registro BX:
     

-R
AX=0055 BX=0000 CX=001C DX=0000 SP=FFFA BP=0000 SI=0000 DI=0001
DS=119D ES=119D SS=119D CS=119D IP=0100 NV UP EI NG NZ AC PO NC
119D:0100 F6dotto   NEG AL  
-T
AX=00AB BX=0000 CX=001C DX=0000 SP=FFFA BP=0000 SI=0000 DI=0001
DS=119D ES=119D SS=119D CS=119D IP=0102 NV UP EI NG NZ AC PO CY
119D:010

     

-R
AX=0000 BX=1122 CX=001C DX=0000 SP=FFFA BP=0000 SI=0000 DI=0001
DS=119D ES=119D SS=119D CS=119D IP=0100 NV UP EI NG NZ AC PO NC
119D:0100 F7DB   NEG BX  
-T
AX=0000 BX=EEDE CX=001C DX=0000 SP=FFFA BP=0000 SI=0000 DI=0001
DS=119D ES=119D SS=119D CS=119D IP=0102 NV UP EI NG NZ AC PE CY
119D:0102 

     
bulletVediamo anche il dettaglio nel caso che l'operando sia uguale a - 128 (=80H) o a - 32768 (=8000H):
     

-R
AX=0080 BX=0000 CX=001C DX=0000 SP=FFFA BP=0000 SI=0000 DI=0001
DS=119D ES=119D SS=119D CS=119D IP=0100 NV UP EI NG NZ AC PO NC
119D:0100 F6dotto   NEG AL  
-T
AX=0080 BX=0000 CX=001C DX=0000 SP=FFFA BP=0000 SI=0000 DI=0001
DS=119D ES=119D SS=119D CS=119D IP=0102 OV UP EI NG NZ AC PO CY
119D:010

     

-R
AX=0000 BX=8000 CX=001C DX=0000 SP=FFFA BP=0000 SI=0000 DI=0001
DS=119D ES=119D SS=119D CS=119D IP=0100 NV UP EI NG NZ AC PO NC
119D:0100 F7DB   NEG BX  
-T
AX=0000 BX=8000 CX=001C DX=0000 SP=FFFA BP=0000 SI=0000 DI=0001
DS=119D ES=119D SS=119D CS=119D IP=0102 OV UP EI NG NZ AC PE CY
119D:0102

    

Pagina Precedente Scheda n° 07 Pagina Successiva Istruzioni Cpu 80x86 Torna al Menu delle Schede del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
Istruzione 130 - NEG

    

SCHEDE » 1.Header EXE 2.PseudoOp MASM 3.Differenza tra Macro e Procedure
4.
Tabella Vettori 5.PSP 6.Stack 7.Istruzioni 80x86
8.La misura dell'Informazione 9.Numeri e Logica Binaria
TUTORIAL » Indirizzi Base | Registri Interni | Area Comunicaz. BIOS | Funzioni BIOS | Funzioni DOS
Prefazione | CAP 1 | CAP 2 | Schede | Palestra
Libreria ASM | Libreria MAC | Progetti ASM | Download | Info | Indice
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati