Aller au contenu

Assembleur


fengweilee

Messages recommandés

Bonjour,

Je suis bloqué dans un exercice assembleur:

[org 0x0100]

mov ax,cs

mov ds,ax

mov ax, 00h

mov bx ,01h

mov cx ,[limite]

pour add ax, bx ;ax-< ax + bx

mov [swap] ,ax

mov ax, bx

mov bx, [swap]

loop pour

mov [fibo], bx

mov ah,4ch

int 21h

nop

[segment .data]

limite db 0Ah,00

swap db00h,00

fibo db 00h,00

il faut réaliser l'assemblage et donner la taille en octet ensuite détaillez le cycle d'instruction en assembleur x86 de mov [swap], ax (ip contient 0110)

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Bonjour,

je te colle ce que j'avais envoyé en MP à une élève qui avait même DM :

Je ne connais pas bien la syntaxe de l'assembleur du x86, mais le principe est le même que sur d'autre.

J'ai téléchargé un émulateur ici :

http://www.emu8086.com/

C'est une version d'essai, mais elle marchera bien plusieurs jours, et elle permet de sauvegarder ce que l'on a fait et aussi de l'émuler en observant les registres.

J'ai copié-collé ton source, essayé de retirer les erreurs de frappe, mais je ne suis pas sûr que mes corrections soient toutes bonnes.

En particulier, je ne sais pas à quoi sert [segment].

Je te propose donc de télécharger la même chose, l'installer sur ton ordinateur et de compiler.

Sur l'émulateur, les étiquettes doivent être suivies de " : " (deux points).

Le ret est mis par défaut par l'émulateur.

Il semble donc que le code, si je n'ai pas fait trop d'erreurs, fasse une longueur de FF, soit 128 octets.

EMU8086 GENERATED LISTING. MACHINE CODE <- SOURCE.

Essai_bahut.com -- emu8086 assembler version: 4.08

[ 18/03/2010 -- 15:58:40 ]

===================================================================================================

[LINE] LOC: MACHINE CODE SOURCE

===================================================================================================

[ 1] :

[ 2] : ; You may customize this and other start-up templates;

[ 3] : ; The location of this template is c:\emu8086\inc\0_com_template.txt

[ 4] :

[ 5] : org 100h

[ 6] :

[ 7] :

[ 8] :

[ 9] : ;[sEGMENT .text]

[ 10] :

[ 11] :

[ 12] :

[ 13] 0100: 8C C8 MOV AX, CS

[ 14] :

[ 15] 0102: 8E D8 MOV DS, AX

[ 16] :

[ 17] 0104: B8 00 00 MOV AX, 00h

[ 18] :

[ 19] 0107: BB 01 00 MOV BX, 01h

[ 20] :

[ 21] 010A: B9 23 01 MOV CX, limite

[ 22] :

[ 23] :

[ 24] :

[ 25] 010D: POUR :

[ 26] :

[ 27] 010D: 03 C3 ADD AX, BX ; AX <- AX + BX

[ 28] :

[ 29] 010F: 89 06 25 01 MOV [swap] , AX

[ 30] :

[ 31] 0113: 8B C3 MOV AX, BX

[ 32] :

[ 33] 0115: BB 25 01 MOV BX, swap

[ 34] :

[ 35] 0118: 90 90 LOOP POUR

[ 36] :

[ 37] :

[ 38] :

[ 39] 011A: 89 1E 27 01 MOV fibo, BX

[ 40] :

[ 41] :

[ 42] :

[ 43] 011E: B4 4C MOV AH, 4Ch

[ 44] :

[ 45] 0120: CD 21 INT 21h

[ 46] :

[ 47] :

[ 48] 0122: 90 NOP

[ 49] :

[ 50] :

[ 51] : ;[sEGMENT .data]

[ 52] :

[ 53] :

[ 54] :

[ 55] 0123: 0A 00 limite: db 0Ah, 00

[ 56] :

[ 57] 0125: 00 00 swap: db 00h, 00

[ 58] :

[ 59] 0127: 00 00 fibo: db 00h, 00

[ 60] :

[ 61] 0129: C3 ret

[ 62] :

[ 63] :

[ 64] :

[ 65] :

[ 66] :

[ 67] :

===================================================================================================

===================================================================================================

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...
spam filtering
spam filtering