Difference between revisions of "Machine language"

From ThorstensHome
Jump to: navigation, search
 
Line 1: Line 1:
 
This shows a mapping of x86 machine language to assembler
 
This shows a mapping of x86 machine language to assembler
  
 
+
  00 01           add    BYTE PTR [bx+di],al
  00 01                 add    BYTE PTR [bx+di],al
+
  00 41 41         add    BYTE PTR [bx+di+0x41],al
  00 41 41             add    BYTE PTR [bx+di+0x41],al
+
  00 ff           add    bh,bh  
  00 ff                 add    bh,bh  
+
  0a               .byte 0xa  
  0a                   .byte 0xa  
+
  40               inc    ax  
  40                   inc    ax  
+
  41               inc    cx  
  41                   inc    cx  
+
  42               inc    dx  
  42                   inc    dx  
+
  43               inc    bx  
  43                   inc    bx  
+
  44               inc    sp  
  44                   inc    sp  
+
  45               inc    bp  
  45                   inc    bp  
+
  46               inc    si  
  46                   inc    si  
+
  47               inc    di  
  47                   inc    di  
+
  48               dec    ax  
  48                   dec    ax  
+
  49               dec    cx  
  49                   dec    cx  
+
  4a               dec    dx  
  4a                   dec    dx  
+
  4b               dec    bx  
  4b                   dec    bx  
+
  4c               dec    sp  
  4c                   dec    sp  
+
  4d               dec    bp
  4d                   dec    bp
+
  4e               dec    si  
  4e                   dec    si  
+
  4f               dec    di  
  4f                   dec    di  
+
  50               push  ax
  50                   push  ax
+
  51               push  cx
  51                   push  cx
+
  52               push  dx
  52                   push  dx
+
  53               push  bx
  53                   push  bx
+
  54               push  rsp  
  54                   push  rsp  
+
55              push  bp
  85 c0                 test ax,ax   
+
56              push  si
  90                   NOP
+
57              push  di
  b8 00 00 00 00       mov    eax,0x0  
+
58              pop    ax
  c3                   ret   
+
59              pop    cx
  cd 10                 int 10  
+
5a              pop    dx
  eb fd                 short                          jump to executing the byte before eb  
+
  85 c0           test ax,ax   
  fa                   cli                            This will clear the interrupt flag in the processor meaning interrupts will not be processed after the flag is set again. This means a high risk - no more keyboard input etc.. So this is a privileged command and may only be executed by the operating system.
+
  90               nop
 +
  b8 00 00 00 00   mov    eax,0x0  
 +
  c3               ret   
 +
  cd 10           int 10  
 +
  eb fd           short                          jump to executing the byte before eb  
 +
  fa               cli                            This will clear the interrupt flag in the processor meaning interrupts will not be processed after the flag is set again. This means a high risk - no more keyboard input etc.. So this is a privileged command and may only be executed by the operating system.

Latest revision as of 12:17, 14 December 2014

This shows a mapping of x86 machine language to assembler

00 01            add    BYTE PTR [bx+di],al
00 41 41         add    BYTE PTR [bx+di+0x41],al
00 ff            add    bh,bh 
0a               .byte 0xa 
40               inc    ax 
41               inc    cx 
42               inc    dx 
43               inc    bx 
44               inc    sp 
45               inc    bp 
46               inc    si 
47               inc    di 
48               dec    ax 
49               dec    cx 
4a               dec    dx 
4b               dec    bx 
4c               dec    sp 
4d               dec    bp
4e               dec    si 
4f               dec    di 
50               push   ax
51               push   cx
52               push   dx
53               push   bx
54               push   rsp 
55               push   bp
56               push   si
57               push   di
58               pop    ax
59               pop    cx
5a               pop    dx
85 c0            test ax,ax  
90               nop 
b8 00 00 00 00   mov    eax,0x0 
c3               ret  
cd 10            int 10 
eb fd            short                          jump to executing the byte before eb 
fa               cli                            This will clear the interrupt flag in the processor meaning interrupts will not be processed after the flag is set again. This means a high risk - no more keyboard input etc.. So this is a privileged command and may only be executed by the operating system.