Difference between revisions of "Machine language"

From ThorstensHome
Jump to: navigation, search
 
(4 intermediate revisions by one user not shown)
Line 1: Line 1:
 
This shows a mapping of x86 machine language to assembler
 
This shows a mapping of x86 machine language to assembler
  
{| class="wikitable sortable" border=1
+
00 01           add    BYTE PTR [bx+di],al
! x86 machine language !! assembler command !! remark
+
00 41 41         add    BYTE PTR [bx+di+0x41],al
|-
+
00 ff            add    bh,bh
| 00 01               ||  add    BYTE PTR [bx+di],al||
+
0a               .byte 0xa  
|-
+
40               inc    ax  
| 00 41 41             ||  add    BYTE PTR [bx+di+0x41],al||
+
41               inc    cx  
|-
+
42              inc    dx
| 0a                   || .byte 0xa ||
+
43              inc    bx
|-
+
44              inc    sp
| 40                   || inc    ax ||
+
45              inc    bp
|-
+
46              inc    si
| 41                   || inc    cx ||
+
47              inc    di
|-
+
48              dec    ax
| 54                   || push  rsp ||
+
49              dec    cx
|-
+
4a              dec    dx
| 85 c0               || test eax,eax ||
+
4b              dec    bx
|-
+
4c              dec    sp
| 90                   || NOP ||
+
4d              dec    bp
|-
+
4e              dec    si
| b8 00 00 00 00       || mov    eax,0x0 ||
+
4f              dec    di
|-
+
50              push  ax
| c3                   || ret  ||
+
51              push  cx
|-
+
52              push  dx
| cd 10               || int 10 ||
+
53              push  bx
|-
+
54               push  rsp  
| eb fd               || short jump to executing the byte before eb ||
+
55              push  bp
|-
+
56              push  si
| 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.
+
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.

Latest revision as of 11: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.