c'est en 16 bits, mode réel, NASM. J'ai des problèmes pour modifier cette variable dans la fonction où cursorRow est un paramètre. Une question que j'ai posté est pertinente: Updating variable that lives in the data segment from the stack and its segmentquelles sont les différences entre ces poussées nasm pile?
0
A
Répondre
1
cursorRow est la valeur et [cursorRow] est la valeur à l'emplacement cursorRow. Si vous devez placer l'adresse de cursorRow sur la pile, vous devez appuyer sur bp + 1 ou sur l'adresse réelle de la variable
1
Si cursorRow (pas [cursorRow]) est initialisé dans la section de données, il est comme un pointeur C. L'utilisation de [cursorRow] le déréférencerait et renverrait la valeur stockée là et vous devrez préfixer [cursorRow] avec la taille de la valeur comme mov al, byte [cursorRow]
.
Questions connexes
- 1. Quelles sont les différences entre ces méthodes de tableau?
- 2. Quelles sont les différences entre ces unités Web?
- 3. Quelles sont les différences entre ces commandes git diff?
- 4. Différences MASM/NASM
- 5. Quelles sont les différences entre les fichiers .dll, .lib, .h?
- 6. Quelles sont les différences entre les différents vecteurs épars d'ublas?
- 7. Quelles sont les différences entre les délégués et les événements?
- 8. Quelles sont les différences de rendu entre FF2 et FF3?
- 9. Quelles sont les différences entre MSMQ et WF?
- 10. Quelles sont les différences entre g ++ version 4.0.0.8 et 4.3.2?
- 11. Quelles sont les différences entre Model, ModelMap et ModelAndView?
- 12. Quelles sont les principales différences entre tous les moteurs mysql?
- 13. Quelles sont les différences entre les constantes TouchEvent?
- 14. Quelles sont les différences entre les versions de Json.Net?
- 15. Quelles sont les différences entre les nœuds NServiceBus.Distributor et Master
- 16. Quelles sont les différences entre les imbriqués if et &&?
- 17. Quelles sont les différences entre les services distribués et décentralisés?
- 18. Quelles sont les différences entre zéro, NULL et [NSNULL nul]?
- 19. Quelles sont les différences entre HoughCircles dans EmguCV et OpenCV?
- 20. Quelles sont les différences entre ces définitions de tableau dans MATLAB?
- 21. quelles sont les différences entre ces adresses-retour de fonctions locales?
- 22. Quelles sont les différences entre ces trois types de modèle de module?
- 23. Quelles sont les différences entre ces extraits de code C# (Outlook addin)?
- 24. Quelles sont les différences entre ces façons de sélectionner un élément dans jQuery?
- 25. quelles sont les différences d'algorithme entre JPEG et GIF?
- 26. quelles sont les différences clés entre mvc1 et mvc2
- 27. quelles sont les différences entre Fork(), Subprocess(), CreateProcess()?
- 28. Quelles sont les différences entre dpm() et dsm()?
- 29. Dans ASP.NET MVC, quelles sont les différences entre "<% =", "<%:" "
- 30. Quelles sont les différences entre RedrawWindow et UpdateWindow dans Win32?
Je pense que les deux vont pousser la valeur * de cursorRow en fonction de votre assembleur (vous pouvez toujours démonter le fichier pour être sûr). 'mov ax, offset cursorRow; push ax' devrait pousser l'adresse au moins. 'lds si, [curseurRow]; pousser ds; push si' devrait pousser un pointeur éloigné, mais ça fait longtemps que j'ai fait des programmes 16 bits multi-segments. – user786653
J'utilise NASM et il n'a pas le mot-clé offset autant que je sache. la nuit dernière, j'ai eu mon programme à travailler en poussant l'adresse de cursorRow avec l'instruction suivante: 'push cursorRow' – TheFuzz
Avez-vous lu nasmdoc? Je me souviens qu'il y avait une section décrivant spécifiquement cette partie comme étant différente des autres assembleurs tels que MASM et TASM. –