Quelles sont les tailles de tword, oword et yword opérandes?
Quelles sont les tailles de tword
, oword
et yword
opérandes, utilisés dans le MSNA/YASM manuel? Et sur une note connexe, il existe une astuce ou une idée sous-jacente à ces noms? Est-il un moyen par lequel le plus grand mot tailles sont donné des noms logiques?
Je sais que tout mot tailles peuvent différer entre les systèmes, les MSNA word
est de 2 octets, dword
est le double (4 octets), qword
est un quad mot (8 octets), mais... est tword
un triple mot (6 octets)? Et pour oword
et yword
je ne peux même pas penser à un sens plausible.
Noter que c'est probablement une question facile, mais je ne pouvais pas trouver une réponse. Dans les MSNA et YASM manuels de ces tailles ne sont pas expliquées, pas même à l'DQ
, DT
, DY
, RESQ
, REST
, RESY
pseudo-instructions. J'ai lu quelque part que MASM utilise un système similaire, mais ne pouvait pas trouver quoi que ce soit sur qui que ce soit.
Edit: sur la Base des réponses, ceci est la liste complète:
- 1 octet (8 bits):
byte
,DB
,RESB
- 2 octets (16 bits):
word
,DW
,RESW
- 4 octets (32 bits):
dword
,DD
,RESD
- 8 octets (64 bits):
qword
,DQ
,RESQ
- 10 octets (80 bits):
tword
,DT
,REST
- 16 octets (128 bits):
oword
,DO
,RESO
,DDQ
,RESDQ
- De 32 octets (256 bits):
yword
,DY
,RESY
- 64 octets (512 bits):
zword
,DZ
,RESZ
Vous devez vous connecter pour publier un commentaire.
Regardant les msna source, il ressemble:
Donc, ce n'est pas exactement une logique convention de nommage; "il growed".
.intel_syntax
utiliser la même convention de nommage pour la mémoire opérande taille remplace, par exemple,vmovdqa ymmword ptr [rdi], ymm0
. Vous habituellement ne voir que dans le démontage de sortie; je ne peux pas penser à un cas où la mémoire opérande largeur est ambigu pour un vecteur de l'instruction, depuis au moins un des opérandes est toujours un registre).o
est utilisé par Intel pourcqo
, mais vecteur instructions d'utilisationdq
au lieu deo
(par exemplepunpckhqdq
). Voir aussi ma réponse sur un récent double de cette questionJ'ai vérifié à l'aide de deux approches pour les MSNA: le code source et empirique.
Code Source
Source: http://repo.or.cz/w/nasm.git
Alors:
Et nous tomber sur:
Empiriques
git log -p
etgit tag --contains
me dire quezword
a été ajouté dans 2.11, et depuis que je suis sur 2.10 et paresseux, je vais omettre que l'on.Sur notre
.asm
fichier:Puis de compiler et d':
donne:
Si nous prenons les différences entre chaque position, nous arrivons à la même conclusion que précédemment.
zword menemonic
Pour la
ZMM
registres ajouté par AVX-512: https://en.wikipedia.org/wiki/AVX-512Je me demande ce que Intel va faire quand les lettres de l'alphabet fin.