Tutorial Sezione Assembler

Dettaglio Istruzioni 

Le Schede del Tutorial

  Istruzioni della Cpu 80x86

SCHEDA n° 07 [I/ 031 di 198] 

    

    CWD - Converte una Word in una Doubleword
     
bulletQuesta istruzione converte la word con segno (16 bit) fornita in AX nella doubleword con segno (32 bit) lasciata in DX:AX (CWD, Convert Word to Doubleword).
bulletDunque, se il bit15 di AX è a 1 carica 0FFFFH in DX; se il bit15 di AX è 0 lascia DX a 0000H.
bulletL'istruzione può tornare utile per formattare a 32 bit (doubleword) l'operando a 16 bit da sottoporre a divisione.
bulletLe sue caratteristiche sono riassunte nella seguente tabella (leggi le istruzioni Legenda della Tabella):
         
    CWD  DX=FFFFH<< se in AX bit15=1  (cioè AX>=8000H)
 DX=0000H << se in AX bit15=0  (cioè AX<  8000H)
 

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

CWD

 

5 2 2 3 no 1                  
         
bulletLa tabella evidenzia che l'istruzione non modifica alcuna flag e che non ha operandi.
bulletSupponendo che il valore in AX sia compreso tra 0000H e 7FFFH, questa istruzione forza a 0000H il registro DX:
     

AX=7F00 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1F7E ES=1F7E SS=1F7E CS=1F7E IP=0100 NV UP EI PL NZ NA PO NC
1F7E:0100 99     CWD  
-T
AX=7F00 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1F7E ES=1F7E SS=1F7E CS=1F7E IP=0101 NV UP EI PL NZ NA PO NC
1F7E:0101

     

AX=7FFF BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1F7E ES=1F7E SS=1F7E CS=1F7E IP=0100 NV UP EI PL NZ NA PO NC
1F7E:0100 99     CWD  
-T
AX=7FFF BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1F7E ES=1F7E SS=1F7E CS=1F7E IP=0101 NV UP EI PL NZ NA PO NC
1F7E:0101

bulletSupponendo che il valore in AX sia compreso tra 8000H e FFFFH, questa istruzione forza a FFFFH il registro DX:
     

AX=8000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1F7E ES=1F7E SS=1F7E CS=1F7E IP=0100 NV UP EI PL NZ NA PO NC
1F7E:0100 99     CWD  
-T
AX=8000 BX=0000 CX=0000 DX=FFFF SP=FFEE BP=0000 SI=0000 DI=0000
DS=1F7E ES=1F7E SS=1F7E CS=1F7E IP=0101 NV UP EI PL NZ NA PO NC
1F7E:0101

     

AX=EFF0 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1F7E ES=1F7E SS=1F7E CS=1F7E IP=0100 NV UP EI PL NZ NA PO NC
1F7E:0100 99     CWD  
-T
AX=EFF0 BX=0000 CX=0000 DX=FFFF SP=FFEE BP=0000 SI=0000 DI=0000
DS=1F7E ES=1F7E SS=1F7E CS=1F7E IP=0101 NV UP EI PL NZ NA PO NC
1F7E:0101

     
bulletDa notare che il codice macchina generato per questa istruzione è costituito da un solo byte, 99H, ovviamente un codice operativo, ed è lo stesso dell'istruzione CDQ.

    

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 031 - CWD

    

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