Section courante

A propos

Section administrative du site

 Langage  Elément  Tutoriel  Programmation  Plateforme  Compilateur  Outils  Emulateur  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
Rust
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Introduction
Les remarques
Les opérateurs
Les instructions conditionnelles
Les instructions de boucles
Type de données élémentaire
Référence des registres
Mode d'adressage du processeur
Structure de données
Référence des instructions par catégories
Référence, lexique et dictionnaire des instructions 80x86
Les symboles prédéfinies
Les directives
Mode 8080
Mode réel
Mode protégé
Mode virtuel 8086
Mode SMM
Format du descripteur de segment
Format du TSS
Format du SMM
Format BCD
Format des nombres réels
8086/8088
Série NEC V20/V30
80286
80386
Pentium
Pentium Pro
AVX-512
MMX (MultiMedia eXtensions)
MPX (Memory Protection Extensions)
SGX (Software Guard Extensions)
SHA extensions
SMX (Safer Mode Extensions)
SSE (Streaming SIMD Extensions)
SSE2 (Streaming SIMD Extensions 2)
SSE3 (Streaming SIMD Extensions 3)
SSSE3 (Supplemental Streaming SIMD Extensions 3)
SSE4.1 (Streaming SIMD Extensions 4.1)
SSE4.2 (Streaming SIMD Extensions 4.2)
TSX (Transactional Synchronization Extensions)
VMX (Virtual-Machine eXtensions)
x86-64
Les boucles
Les chaînes
les comparaisons
Les conversions
Les décalages de bits
Les drapeaux
Les opérateurs
Saut conditionnel
Saut inconditionnel
Les transferts de données
Utilisation de la pile
Accès mémoire
Ensemble d'instructions pour les applications 80386
BIOS compatible au micro-ordinateur IBM PC
Démarrage du système
Détermination de la version du BIOS
Détermination du type de PC
Fonctions de sortie de l'écran du BIOS
Détermination de la configuration du système à l'aide du BIOS
Détermination de la RAM disponible à l'aide du BIOS
Accéder à la disquette depuis le BIOS
Accéder au disque dur depuis le BIOS
Accéder au port série depuis le BIOS
L'interruption de la cassette
Accéder au clavier depuis le BIOS
Accéder à l'imprimante à partir du BIOS
Lecture de la date et de l'heure à partir du BIOS
Variables du BIOS
Bonjour
Application
Détection
Mathématique
Temps
Stationnement de voiture
BIOS SCSI
CMOS de XT
DesqView
Valeur absolue (ABS)
Triangle Pascal
Année bissextile
DOS
GeoWorks
86-DOS
MS-DOS 2
MS-DOS 6
A86
LZASM
MASM
NASM
TASM
CodeView
Free Hex Editor Neo
OllyDbg
SoftICE
Turbo Debugger
DOSBox
emu8086
PCE - PC Emulator
PCem
Interruptions
Port d'entrée/sortie
RAM de l'IBM PC
Téléchargement
00h à 07h: Processeur
08h à 0Fh: Périphériques (IRQ0 à IRQ7)
10h: Gestionnaire vidéo
13h: Accès aux disques
14h: Gestion des ports séries
15h: Extension d'Entrée/Sortie
16h: Gestion du clavier
17h: Gestion de l'imprimante
21h: Service DOS
2Ah: Interface de service réseau
2Fh: Multiplexe
33h: Interface du pilote de souris
59h: GSS Computer Graphics Interface
5Ch: Réseau BIOS (NetBIOS)
67h: Gestionnaire EMM/EMS
00h: Mode vidéo
01h: Sélection du type de curseur
10h, F0h: Tseng Labs HiColor
4Fh: Pilote VESA
5Fh: Realtek RTVGA
6Fh: Video 7
18h: Demande des informations SCSI
01h: Écrit dans la RAM non-volatile (Amstrad PC1512)
02h: Lecture dans la RAM non-volatile (Amstrad PC1512)
10h: Gestionnaire principal TopView
89h: Entrée en mode protégé
64h: OS/2 API DOS32StartSession
FFh, 92h: Détecte la présence du pilote «PREDIR.EXE»
16h: Windows & DPMI
0Ah: Détection de Windows
84h: Demande le point d'entrée
86h: Détection du mode DPMI
87h: Détecte l'installation DPMI
8Eh: Machine virtuel et application
Préface
Notes légal
Dictionnaire
Recherche

Introduction

Les microprocesseurs 16 bits de la série NEC V sont des bases de périphériques améliorées basées sur une architecture de type 8086/8088. Les modèles V20 et V30 sont des remplacements compatibles avec des broches directes pour les processeurs Intel 8088 et 8086 respectivement et sont largement utilisés dans les clones d'ordinateurs personnels compatibles IBM PC. En utilisant une génération d'adresses et une mise en pipeline améliorées des instructions, les périphériques V20 / V30 offrent une vitesse d'exécution 40% supérieure à celle des systèmes 8088/8086 utilisant la même fréquence d'horloge. Le jeu d'instructions est compatible avec celui du 8088/8086 mais a été amélioré par l'ajout d'un certain nombre de nouvelles instructions. Les versions V40 et V50 incluent une génération d'horloge à puce, trois compteurs / temporisateurs, un contrôleur de priorité d'interruption et des canaux DMA. Ces périphériques offrent des fonctionnalités similaires aux processeurs Intel 80188 et Intel 80186 respectivement.

Premier fabricant

Nippon Electric Co.

Périphérique disponible

Modèle Description
μPD70108 (V20) Ce modèle est une version bus de données 8 bits.
μPD70116 (V30) Ce modèle est une version bus de données 16 bits.
μPD70208 (V40) Ce modèle est un V20 avec périphériques sur puce.
μPD70216 (V50) Ce modèle est un V30 avec périphériques sur puce.
μPD70136 (V33) Ce modèle est un V30 rapide avec bus d'adresses étendu.

Architecture

L'architecture du V30 est une version améliorée de l'architecture 8086. La principale différence réside dans l'ajout de pipeline et d'autres améliorations de la logique interne visant à améliorer la vitesse d'exécution par rapport à celle d'un 8086 fonctionnant avec la même fréquence d'horloge.

Paquet

Modèle Description
V20 / V30 DIL à 40 broches, boîtier plat à 52 broches ou PLCC à 44 broches
V33 PGA 68 broches
V40/V50 PLCC à 68 broches, PGA à 68 broches ou boîtier plat à 80 broches
V25/V35 PLCC à 84 broches ou boîtier plat à 94 broches

Connexions de broches

Pour le V20 et le V30, les connexions par broches sont directement compatibles avec les processeurs Intel 8088 et 8086 respectivement.

Exigences de puissance

Vcc +4,75 V à +5,25 V

Intervalle de température

0°C à +70°C

Registres des microprocesseurs

MID Nom Description
AW ACCUMULATOR Registre accumulateur
BW BASE REGISTER Registre de base
CW COUNTER REGISTER Registre de compteur
DW DATA REGISTER Registre de données
IX INDEX X Registre d'index X
IY INDEX Y Registre d'index Y
SP STACK POINTER Registre de pointeur de pile
BP BASE POINTER Registre de pointeur de base
PS PROGRAM SEGMENT Registre de segment de programme
DS1 DATA SEGMENT 1 Registre de segment de données 1
SS STACK SEGMENT Registre de segment de pile
DS0 DATA SEGMENT 0 Registre de segment de données 0
PC PROGRAM COUNTER Registre de compteur de programme
PSW STATUS WORD Registre d'état de mot

Installations d'interruption

Les processeurs V20/V30 peuvent gérer 256 exceptions différentes et leurs vecteurs sont conservés dans une table de vecteurs au bas de la mémoire. Chaque vecteur occupe 4 octets en mémoire, de sorte que la table de vecteurs complète occupe les 1 Ko inférieurs de mémoire. Les vecteurs sont alloués comme suit :

Vecteur Description
0 Erreur de division
1 Exception de débogage
2 NMI d'interruption non masqué
3 Interruption d'un octet INT
4 Interruption en cas de débordement INTO
5 Vérification de limites de tableaux BOUND
6 Opcode invalide
7 Périphérique non disponible
8 Double faute
9 Dépassement de segment de coprocesseur
10 TSS invalide
11 Segment non présent
12 Faute de pile
13 Faute de protection générale
14 Faute de page
15 Réservé
16 Erreur de coprocesseur
17 à 32 Réservé
33 à 255 Trappe d'instructions INT n

Les instructions

L'ensemble d'instructions des processeurs de la série V est fondamentalement identique à celui des processeurs de type 8086/8088, à l'exception de quelques nouvelles instructions ayant été ajoutées. Les instructions de base fournies sur le V20 / V30 sont les suivantes :

Instruction Signification Description
AAA ASCII adjust AL after addition Cette instruction permet d'adapter le résultat obtenu par l'addition de 2 valeur en format DCB.
AAD ASCII adjust AX before division Cette instruction permet de convertir une valeur de format DCB non compactée.
AAM ASCII adjust AX after multiplication Cette instruction offre la possibilité de convertir le produit de la multiplication de 2 valeurs de format DCB en un format DCB.
AAS ASCII adjust AL after subtraction Cette instruction permet d'adapter le résultat de la soustraction de nombre de format DCB.
ADC Add with carry Cette instruction additionne 2 quantités numériques sur 8 ou 16 bits et ajoute ensuite la valeur de l'indicateur de retenue, lequel est contenu dans le drapeau CF(CARRY FLAG), à la somme obtenu.
ADD Add Cette instruction additionne 2 quantités numérique sur 8, 16 ou 32 bits.
AND And Cette instruction permet d'effectuer un ET BINAIRE sur les 2 opérandes spécifiés.
CALL Call procedure Cette instruction force le microprocesseur à exécuter les instructions du sous-programme indiqué par l'adresse d'appel avant de continuer.
CBW Convert byte to word Cette instruction permet de convertir un nombre contenu dans le registre AL en un format sur 16 bits pour se retrouver dans le registre AX en appliquant une extension du signe.
CLC Clear carry flag Cette instruction permet de mettre l'indicateur d'état de retenu CF à 0.
CLD Clear direction flag Cette instruction met l'indicateur d'état DF à 0, soit la direction croissante.
CLI Clear interrupt flag Cette instruction met l'indicateur d'état IF à 0, soit l'interdiction des interruptions.
CMC Complement carry flag Cette instruction offre la possibilité d'inverser la valeur de l'indicateur de retenue. Si ce dernier vaut 1, elle le met à 0 et inversement.
CMP Compare operands Cette instruction offre la possibilité essentielle de comparer 2 registres ou emplacements de mémoire.
CMPS Compare String Cette instruction permet d'effectuer la comparaison d'un octet, d'un mot ou double mot spécifié avec l'opérande source et destination spécifié et fixe l'état des drapeaux du registres EFLAGS en fonction des résultats de la comparaison.
CWD Convert word to doubleword Cette instruction est l'alternative pour convertir le mot du registre AX en un double mot contenu dans le couple de registre DX et AX par extension du signe.
DAA Decimal adjust AL after addition Cette instruction corrige après coup les retenues lors de la manipulation de valeur DCB.
DEC Decrement by 1 Cette instruction décrément de 1 le registre ou l'adresse mémoire spécifié.
DIV Unsigned divide Cette instruction permet d'effectuer une division non-signée (nombre naturel).
HLT Halt Cette instruction permet de faire passer le microprocesseur en mode d'arrêt. Toutefois, le processeur peut quitter cet état lorsqu'une ligne matérielle RESET ou lorsqu'une interruption non-masquable (NMI) reçoit un signal.
IDIV Integer divide Cette instruction permet d'effectuer une division signée (nombre entier).
IMUL Integer multiply Cette instruction permet d'effectuer une multiplication signée (nombre entier).
IN Input from port Cette instruction permet de demander un octet, un mot ou un double mot provenant du port d'entrée/sortie et le retourne dans le registre accumulateur (AL, AX, EAX).
INC Increment by 1 Cette instruction permet d'incrémenter un registre ou un emplacement mémoire.
INS Input from port to string Cette instruction permet de demander un octet, un mot ou un double mot du port d'entrée/sortie et retourne le résultat dans l'adresse ES:[DI] et incrémente/décrémente le registre DI en fonction de la taille de l'opérande cible et de l'état du drapeau de direction.
INT Interrupt Cette instruction permet d'exécuter l'interruption avec le numéro spécifié.
INTO Interrupt if overflow Cette instruction permet d'exécuter l'interruption numéro 4 si le drapeau de débordement (OF) est fixé sur 1é
IRET Return from interrupt Cette instruction permet d'effectuer un retour précédemment provoquer par une interruption.
Jcc Jump if condition Ces instructions permettent d'effectuer d'effectuer un branchement conditionnel à emplacement mémoire spécifié.
JMP Jump Cette instruction permet d'effectuer un branchement à un emplacement mémoire spécifié.
LAHF Load flags into AH register Cette instruction permet de transférer les bits d'indicateurs du registre d'état vers le registre AH.
LDS Load pointer using DS Cette instruction permet de copier une adresse de mémoire contenu sur 32 bits dans la paire de registre de segment DS et dans un registre d'offset spécifié.
LEA Load Effective Address Cette instruction permet de copier l'offset d'une adresse de mémoire contenu dans un registre spécifié.
LEAVE Leave stack frame Cette instruction permet de libérer une zone de mémoire attribué par l'instruction «ENTER» lorsqu'on utilise des procédures dans des langages de programmation de haut niveau.
LES Load ES with pointer Cette instruction permet de copier une adresse de mémoire contenu sur 32 bits dans la paire de registre de segment ES et dans un registre d'offset spécifié.
LODS Load String Cette instruction permet de copier un élément de l'adresse DS:SI dans le registre accumulateur et incrémente/décrémente le registre SI en fonction de la taille de l'opérande source et de l'état du drapeau de direction.
LOOP Loop Cette instruction de boucle permet de décrémenter le registre CX (compteur de boucle) de 1 et par la suite de donner le contrôle à une étiquette destinataire tant que le registre CX ne vaut pas 0.
LOOPE Loop equal Cette instruction de boucle permet de décrémenter le registre CX (compteur de boucle) de 1 et par la suite de donner le contrôle à une étiquette destinataire tant que le registre CX ne vaut pas 0 et si le drapeau ZF vaut 1.
LOOPNE Loop not equal Cette instruction de boucle permet de décrémenter le registre CX (compteur de boucle) de 1 et par la suite de donner le contrôle à une étiquette destinataire tant que le registre CX ne vaut pas 0 et si le drapeau ZF vaut 0.
MOV Move Cette instruction permet de copier opérande source dans une opérande destinataire.
MOVS Move String Cette instruction permet de copier un élément de l'adresse DS:SI dans l'adresse ES:DI et incrémente/décrémente les registres DI et SI en fonction de la taille de l'opérande source et de l'état du drapeau de direction.
MOVSX Move with sign-extend Cette instruction permet de copier un registre de taille inférieur dans un registre de plus grande taille en remplissant les bits supplémentaires avec l'extension des signes.
MOVZX Move with zero-extend Cette instruction permet de copier un registre de taille inférieur dans un registre de plus grande taille en remplissant les bits supplémentaires par des 0.
MUL Unsigned multiply Cette instruction permet d'effectuer une multiplication non-signée (nombre naturel).
NEG Negation Cette instruction permet d'effectuer le complément à 2 d'une opérande.
NOP No operation Cette instruction ne fait rien.
NOT Not Cette instruction permet d'inverser la valeur de chacun des bits d'une opérande.
OR Or Cette instruction permet d'effectuer un OU BINAIRE sur les 2 opérandes spécifiés.
OUT Output to port Cette instruction permet d'envoyer un octet, un mot ou un double mot sur le port d'entrée/sortie.
OUTS Output string to port Cette instruction permet d'envoyer un octet, un mot ou un double mot contenu dans l'adresse DS:[SI] du port d'entrée/sortie et incrémente/décrémente le registre SI en fonction de la taille de l'opérande cible et de l'état du drapeau de direction.
POP Pop data from stack Cette instruction permet de désempiler de la pile une mot ou un double mot et la met dans une opérande.
POPA Pop All Cette instruction permet de désempiler de la pile respectivement les registres DI, SI, BP, SP, BX, DX, CX et AX.
POPF Pop data into Flags register Cette instruction permet de désempiler de la pile le registre 16 bits de drapeau contenant les indicateurs d'état.
PUSH Push data onto stack Cette instruction permet d'empiler une mot ou un double mot dans la pile.
PUSHA Push All Cette instruction permet d'empiler respectivement les registres DI, SI, BP, SP, BX, DX, CX et AX dans la pile.
PUSHF Push flags onto stack Cette instruction permet d'empiler respectivement le registre 16 bits de drapeau des indicateurs d'état dans la pile.
RCL 1 Rotate left (with carry) Cette instruction permet d'effectuer une rotation des bits vers la gauche en réinsérant le bit dans l'indicateur de retenue (CF) ainsi que dans le bit le plus à droite libéré.
RCR 1 Rotate right (with carry) Cette instruction permet d'effectuer une rotation des bits vers la droite en réinsérant le bit dans l'indicateur de retenue (CF) ainsi que dans le bit le plus à gauche libéré.
REP Repeat Cette instruction est utilisé comme préfixe avec d'autres instructions pour effectuer des répétitions d'instructions tant que CX ne vaut pas 0.
REPE Repeat equal Cette instruction est utilisé comme préfixe avec d'autres instructions pour effectuer des répétitions d'instructions jusqu'à ce que CX = 0 ou tant que l'indicateur ZF = 0.
REPNE Repeat not equal Cette instruction est utilisé comme préfixe avec d'autres instructions pour effectuer des répétitions d'instructions jusqu'à ce que CX = 0 ou tant que l'indicateur ZF = 1.
RET Return from procedure Cette instruction permet de quitter une procédure.
RETF Return from far procedure Cette instruction permet de quitter une procédure ayant lieu avec un appel long (FAR CALL).
RETN Return from near procedure Cette instruction permet de quitter une procédure ayant lieu avec un appel court (NEAR CALL).
ROL 1 Rotate left Cette instruction permet d'effectuer une rotation des bits vers la gauche en réinsérant le bit dans le bit le plus à droite libéré.
ROR 1 Rotate right Cette instruction permet d'effectuer une rotation des bits vers la droite en réinsérant le bit dans le bit le plus à gauche libéré.
SAHF Store AH into flags Cette instruction permet de copier les bits du registre AH dans l'octet de poids faible dans le registre des drapeaux (les indicateurs d'état).
SAL 1 Shift Arithmetically left Cette instruction permet d'effectuer une rotation des bits vers la gauche en réinsérant le bit dans l'indicateur de retenue (CF).
SAR 1 Shift Arithmetically right Cette instruction permet d'effectuer une rotation des bits vers la droite en réinsérant le bit dans l'indicateur de retenue (CF).
SBB Subtraction with borrow Cette instruction permet de soustraire avec l'indicateur de retenue (CF) une valeur à une opérande.
SCAS String Compare String Cette instruction permet de comparer un octet, un mot ou un double mot avec la cellule mémoire à l'adresse ES:[DI] et incrémente/décrémente le registre DI en fonction de la taille de l'opérande cible et de l'état du drapeau de direction.
SETcc Set byte to one on condition Cette directive permet de fixer la valeur d'une opérande 1 si la condition d'indicateur d'état du registre 32 bits de drapeau est vrai sinon fixe la valeur à 0.
SHL 1 Shift left Cette instruction permet d'effectuer une rotation des bits vers la gauche en réinsérant le bit dans l'indicateur de retenue (CF).
SHLD Shift left double-word Cette instruction permet d'effectuer une rotation des bits d'un double mot vers la gauche en réinsérant le bit dans l'indicateur de retenue (CF).
SHR 1 Shift right Cette instruction permet d'effectuer une rotation des bits vers la droite en réinsérant le bit dans l'indicateur de retenue (CF).
STC Set carry flag Cette instruction permet de fixer l'indicateur de retenue (CF) à la valeur 1.
STD Set direction flag Cette instruction permet de fixer l'indicateur de direction (DF) à la valeur 1.
STI Set interrupt flag Cette instruction permet de fixer l'indicateur d'interruption (IF) à la valeur 1.
STOS Store in string Cette instruction permet de copier un octet, un mot ou un double mot dans la cellule mémoire à l'adresse ES:[DI] et incrémente/décrémente le registre DI en fonction de la taille de l'opérande cible et de l'état du drapeau de direction.
SUB Subtraction Cette instruction permet de soustraire une valeur à une opérande.
TEST Test Cette instruction permet d'effectuer un «Et binaire» sur une opérande cible sans modifier sa valeur.
WAIT Wait Cette instruction permet de faire passer le microprocesseur en mode d'attente jusqu'à ce que la ligne de teste sur la carte mère s'active.
XCHG Exchange Cette instruction permet d'échanger la valeur de deux opérandes.
XLAT Table look-up translation Cette instruction permet de remplacer le contenu du registre AL par un octet de la «tablesource».
XOR Exclusive OR Cette instruction permet d'effectuer un OU exclusif BINAIRE sur les 2 opérandes spécifiés.

Les nouvelles instructions disponibles sur les processeurs de la série V sont les suivantes :

Instruction Signification Description
CLR1 Clear a bit Cette instruction permet d'effacer un bit.
NOT1 Complement a bit Cette instruction permet d'effectuer le complément d'un bit.
SET1 Set a bit Cette instruction permet de fixer d'un bit.
TEST1 Test a bit Cette instruction permet de tester un bit.
INS Insert bit field Cette instruction permet d'insérer un champ de bits.
EXT Extract bit field Cette instruction permet d'extraire le champ de bits.
ADD4S Add BCD string Cette instruction permet d'ajouter une chaîne de caractères BCD.
CMP4S Compare BCD string Cette instruction permet de comparer la chaîne de caractères BCD.
SUB4S Substract BCD Cette instruction permet de soustraire un BCD.
ROL4S Rotate BCD string Cette instruction permet d'effectuer la rotation vers la gauche de la chaîne de caractères BCD.
ROR4S Rotate BCD string Cette instruction permet d'effectuer la rotation vers la droite de la chaîne de caractères BCD.
POP R Pop all registers Cette instruction permet de dépiler tous les registres.
PUSH R Push all registers Cette instruction permet d'empiler tous les registres.
PUSH Push immediate data Cette instruction permet d'empiler des valeurs immédiates.
CHKIND Check index Cette instruction permet de vérifier l'index.
INM Input string Cette instruction permet d'entrée une chaîne de caractères.
OUTM Output string Cette instruction permet de sortir une chaîne de caractères.
REPC Repeat if carry set Cette instruction permet de répéter si le drapeau de retenu est fixé.
REPNC Repeat if carry clear Cette instruction permet de répéter si le drapeau de retenu est effacé.


PARTAGER CETTE PAGE SUR
Dernière mise à jour : Lundi, le 20 mai 2019