x86 cheat sheet

INSTRUCTION FORMAT:
opcode    destination-operand,  source-operand

ADDRESSING MODES: 
opcode    register, register
opcode    register, immediate
opcode    register, memory
opcode    memory,   register
opcode    memory,   immediate

(memory to memory is illegal) 

MOV INSTRUCTION:
MOV   DEST,   SRC;      copy SRC into DEST
MOV   DEST,   [SRC];    copy value at memory address SRC into DEST


LEA INSTRUCTION:
LEA   DEST,   [SRC];      compute address in SRC and copy into DEST

MOV vs LEA:
MOV   eax,   var      == lea eax, [var] ; i.e. mov r32, imm32
LEA   eax,   [var+16] == mov eax, var+16
LEA   eax,   [eax*4]  == shl eax, 2 ; but without setting flags

MOV EDX, [EBX + 8*EAX + 4]
LEA ESI, [EBX + 8*EAX + 4]


PUSH INSTRUCTION:
1- Store the pushed value at current address of ESP register.
2- Decrement the ESP register to size of pushed value.


ARRAY ADDRESSING:

Let's assume that ebx is the base register and esi is the index register of the element. 4 is the scaling factor for dword array. 

to read the value from array into eax:  
MOV     eax,         [ebx+4*esi]  
to store the value of eax into array: 
MOV    [ebx+4*esi],  eax 

The value of index register can be optionally scaled with 2, 4 or 8. In this example we can use a scaling factor 8 for a struct array in which each struct consists of 2 dwords. (in 386 legal scaling factors are 1, 2, 4 and 8).

to read the value of 2nd dword from array into eax:
MOV     eax,         [ebx+8*esi+4]


DATATYPES:

BINARY:
0001 0010 00110100010101100111100010011010101111001101111011110001
==== ==== ========------------------------------------------------
   |    |        |                |                              |
   4    8        16              32                             64 
   N    B        W               DW                             QW

HEX:    0123 4567 89AB CDEF
qword   ==== ==== ==== ====
dword   ==== ====
word    ====
byte    ==
nibble  = 
                                                              bit
                                                nibble   =  4 bits
                                   byte    =  2 nibbles  =  8 bits
                       WORD    = 2 bytes   =  4 nibbles  = 16 bits
           DWORD   = 2 WORDs   = 4 bytes   =  8 nibbles  = 32 bits
QWORD  = 2 DWORDs  = 4 WORDs   = 8 bytes   = 16 nibbles  = 64 bits


The low byte (bits 0 through 7) of each data type occupies the lowest address in memory and that address is also the address of the operand.


64-BIT OPERATIONS:

0x1122334455667788
  ================  rax (64 bits)
          ========  eax (32 bits)
              ====  ax  (16 bits)
              ==    ah  ( 8 bits)
                ==  al  ( 8 bits)

Join the Conversation

No comments

  1. Насос погружной скважинный UNIPUMP ECO MAXI 23,5-173 – Погружные скважинные насосы UNIPUMP серии ЕСО MAXI — предназначены для подачи чистой холодной воды (без абразивных и волокнистых включений) из скважин с внутренним диаметром не менее 133 мм, глубоких колодцев и открытых водоемов. Область применения — для автономного водоснабжения индивидуальных зданий, коттеджей, дачных домов, для организации полива огородов, садовых участков, наполнения водой резервуаров, а также для обеспечения водой малых гражданских, сельскохозяйственных и производственных объектов. Максимальная глубина погружения под зеркало воды — 100 м Температура перекачиваемой жидкости — 0…+35°С Температура окружающей среды — 0…+35°С Максимально допустимое количество примесей в перекачиваемой жидкости — не более 100 г/м? Максимальный размер механических примесей — 2 мм pH перекачиваемой жидкости — 6,5…8,5 Параметры электросети — 3~, 380 ± 10 % В, 50 Гц Номинальная частота вращения двигателя — 2850 об/мин Встроенная термозащита двигателя*, температура срабатывания теплового реле — ?130°С Степень защиты двигателя — IP68 * Примечание: в двигателях насосов ECO MAXI 23.5-130 и 23.5-173 мощностью 5,5 и 7,5 кВт тепловое реле не установлено. Устройство насоса Насос состоит из электродвигателя и проточной части. Корпус насоса выполнен из нержавеющей стали. Напорный патрубок и адаптер изготовлены из латуни, фланец двигателя изготовлен из чугуна. Электродвигатель — трехфазный, маслонаполненный, со встроенным тепловым реле. Рабочие колеса «плавающие», выполнены из высокопрочного, износоустойчивого поликарбоната. Всасывающее отверстие скважинного насоса располагается в средней части насоса и защищено фильтрующей решеткой. Инструкция https://7filtrov.shophttps://7filtrov.shop/upload/iblock/518/518d5fa4a082b0e34b880ddc250355e7.jpg – https:/7filtrov.shop/catalog/nasosy/nasosy_dlya_skvazhin/5660/ – Насос погружной скважинный UNIPUMP ECO MAXI 23,5-173
    Насосы здесь – Насосы на выбор: http://7filtrov.shop/catalog/nasosy/nasosy_dlya_skvazhin/ – насосы для скважин

    http://7filtrov.shop/catalog/nasosy/nasosy_dlya_skvazhin/nasosy_dlya_skvazhin_20_metrov/ – купить насос для скважин 20 метров
    http://7filtrov.shop/catalog/nasosy/nasosy_dlya_skvazhin/nasosy_dlya_skvazhin_25_metrov/ – насосы для скважин 25 метров москва
    http://7filtrov.shop/catalog/nasosy/nasosy_dlya_skvazhin/nasosy_dlya_skvazhin_40_metrov/ – насосы для скважин 40 метров

    http://7filtrov.shop/catalog/nasosy/nasosy_dlya_skvazhin/nasosy_dlya_skvazhin_70_metrov/ – насосы для скважин 70 метров москва
    http://7filtrov.shop/catalog/nasosy/nasosy_dlya_skvazhin/nasosy_dlya_skvazhin_80_metrov/ – насосы для скважин 80 метров
    http://7filtrov.shop/catalog/nasosy/nasosy_dlya_skvazhin/nasosy_dlya_skvazhin_100_metrov/ – купить насос для скважин 100 метров

    http://7filtrov.shop/catalog/nasosy/nasosy_dlya_skvazhin/nasosy_dlya_skvazhin_130_metrov/ – насосы для скважин 130 метров
    http://7filtrov.shop/catalog/nasosy/nasosy_dlya_skvazhin/nasosy_dlya_skvazhin_grundfos/ – насосы для скважин grundfos москва

    http://7filtrov.shop/catalog/nasosy/nasosy_dlya_skvazhin/nasosy_dlya_skvazhin_vodotok/ – насосы для скважин vodotok.

Leave a comment

Your email address will not be published. Required fields are marked *