Bonjour,
Tout d'abord bravo pour ce super site.
Voila,je n'arrive pas à utiliser une valeur issue du segment mémoire 0:... (zone des pointeurs sur les gestionnaire interruptions bios).
(mon but est d'afficher simplement ces différentes valeurs)
le code est compilé en .com par nasm (nasm -fbin prog.asm -o prog.com)
puis exécuter par dos box (je suis sous Windows 8)
voici le code;
ce code m'affiche '8' alors qu'en traçant le code DWORD[0:4] vaut 0603h,je devrais donc avoir '3' d'afficher (03+30h=33h='3'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 org 100h %define NumInt 2 ;n° de l'int voulue section .txt start: mov ax,cs mov ds,ax mov ax,0B800h mov es,ax ;es pointe sur ram video texte vga mov ax,0 mov fs,ax ;fs pointe sur segment 0:.... mov ax,3 ;texte 80*25 int 10h mov si,NumInt shl si,2 ;dx pointe sur pointeur gestionnaire correspondant (NumInt*4) mov ax,[fs:si] ;ax contient le word de l'offset du pointeur far add al,30h ;al devient un code ascii affichable mov ah,100b ;attribut couleur mov di,0 ;première case vga texte mov [es:di],ax ;ecriture en vga texte mov ah,0 int 16h ret
qu 'est ce qui ne va pas ??
Merci pour votre aide.
Partager