Utoljára aktív 1 month ago

Assembly Live 0 - "CODIGO"

racerxdl's Avatar Lucas Teske gist felülvizsgálása 5 years ago. Revízióhoz ugrás

1 file changed, 86 insertions

assembly-live-0.s(fájl létrehozva)

@@ -0,0 +1,86 @@
1 + ; A B C D = 8 bits
2 + ; IP = Instruction Pointer = 16 bits = 65535
3 + ; SP = Stack Pointer = 16 bits = 65535
4 + ; | AX |
5 + ; | A |
6 + ; AX = 0000 0000 0000 0000
7 + ; AX, BX, CX, DX = 16 bits
8 + ; | EAX |
9 + ; | AX |
10 + ; | Ah | Al |
11 + ; | A |
12 + ; EAX = 0000 0000 0000 0000 0000 0000 0000 0000
13 + ; EAX, EBX, ECX, EDX = 32 bits
14 + ; EIP = Enhanced IP = 32 bits
15 + ; ESP = Enhanced SP = 32 bits
16 + ;
17 + ; ----- PAE - Physical Address Extension ------
18 + ;
19 + ;
20 + ; RAX, RBX, RCX, RDX = 64 bits
21 + ; RIP = Register IP = 64 bits
22 + ; RSP = Register SP = 64 bits
23 +
24 +
25 + mov EAX, EBX ; A = B
26 + mov EBX, EAX ; B = A
27 + add EAX, EBX ; A = A + B
28 + sub EAX, EBX ; A = A - B
29 + inc EAX ; A = A + 1
30 + inc AX
31 + inc A
32 + dec EBX ; B = B - 1
33 +
34 + ; RAX = int64 = 64 bits = 1844674407370955161
35 + ; 88 × 10 ^ 27 m
36 + ; 5 × 10 ^ -5 m
37 + ; /\ /\ /\
38 + ; Mantissa Base Expoente
39 + ; 1 sinal 57 bits mantissa - 1 sinal 5 bits de expoente
40 + ; 88 25 ( -31 a 31 )
41 + ; ponto flutuante decimal => a * 10 ^ b
42 + ;
43 + ;
44 + ; 5 * 2 = 10 ; 0101 * 0000 0010 = 0000 1010
45 + ; 5 * 4 = 20 ; 0101 * 0000 0100 = 0001 0100
46 + ; 5 * 8 = 40 ; 0101 * 0000 1000 = 0010 1000
47 + ; 5 * 16 = 80 ; 0101 * 0001 0000 = 0101 0000
48 + ; 5 / 2 = 2 ; 0101 / 0000 0010 = 0000 0010
49 +
50 + ; float = 32 bit
51 + ; Base 2
52 + ; ponto flutuante binario => a * 2 ^ b
53 + ;
54 + ;
55 + ; Mantissa 8 bits = 1 bit sinal, 7 bits numero
56 + ; -128 a 127
57 + ; Expoente 4 bits = 1 bit sinal, 3 bits numero
58 + ; -8 a 7
59 + ; | Matissa | Expoente | Valor
60 + ; |S| Numero |S|
61 + ; 0 0000001 0 000 | 1 * 10 ^ 0 = 1
62 + ; 0 | 12 * 10 ^ -2 = 0.12
63 + ; 0 1 011 |128 * 10 ^ -3 = 0.128
64 + ; | 13 * 10 ^ -2 = 0.13
65 + ; 0 0101001 1 010 | 25 * 10 ^ -2 = 0.25
66 + ; 0 1001011 1 010 | 75 * 10 ^ -2 = 0.75
67 + ; 0 0000101 1 001 | 5 * 10 ^ -1 = 0.5
68 + ; 0 0000010 0 000 | 2 * 10 ^ 0 = 2
69 + ; a * 0.5 == a / 2
70 + ; multiplicacoes em FLOAT = ~3
71 + ; divisoes em FLOAT = ~7
72 + ; ´
73 +
74 + ; MMX, SSE, AVX, 3DNOW, NEON
75 + ; XMM0 = 4 x 64 bits = 4 double
76 + ; XMM0 = 8 x 32 bits = 8 float
77 + ; XMM0 - XMM15 = 16 FUCKING REGISTRADORES DE 256 BITS
78 + ;
79 + ; XMM0 + XMM1 == 1 instrução
80 + ;
81 + ; XMM0[0], XMM0[1], XMM0[2], XMM0[3]
82 + ; * XMM1[0], XMM1[1], XMM1[2], XMM1[3]
83 + ; =
84 + ; FMA = Fused-multiply-add
85 + ; XMM0 * XMM1 + XMM2 =>> ONE FUCKING INSTRUCTION!!!
86 + ; SIMD = Single Instruction Multiple Data
Újabb Régebbi