Lucas Teske ревизий этого фрагмента 5 years ago. К ревизии
1 file changed, 86 insertions
assembly-live-0.s(файл создан)
| @@ -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 | |
Новее
Позже