Skip to content

Latest commit

 

History

History
89 lines (78 loc) · 2.17 KB

l8.md

File metadata and controls

89 lines (78 loc) · 2.17 KB

Assembler: Снова Основы

О чем говорили

  • Как представляются целые числа и строки в памяти
  • Какие в ассемблере бывают "типы" (на самом деле размеры) данных
  • О разных ассемблерных командах
  • О разных вариантах команды MOV

Материалы

  • Достаточно подробный справочник-учебник по x86 ассемблеру: link
  • Таблица системных вызовов для х86: link
  • Красивый туториал по x64 ассемблеру: link

Что посмотреть

Что порешать

Задание 0
mov [0xAABBCCCD], 0x11C0FFEE
mov [0xAABBCCD1], 0x12345678
mov [0xAABBCCD5], 0xCAFEBABE
mov [0xAABBCCD9], 0xDEADBEEF
lea edi, [0xAABBCCDD]
lea esi, [0xAABBCCD9]
xor ebx, ebx
l1:
	mov eax, DWORD [esi]
	mov [edi], eax
	sub esi, 4
	add ebx, 4
	cmp ebx, 0x10
	jl l1
	
	Что будет в ячейке [0xAABBCCD5]?
Задание 1
xor eax, eax
xor ebx, ebx
xor ecx, ecx
xor edx, edx
Label0:
    add eax, 10
    add ebx, 20
    sub ebx, eax
    cmp eax, ebx
    jl Label5
    jge Label4
Label1:
    add ecx, ecx
    add ecx, ecx
    sub edx, ecx
    cmp edx, eax
    je finish
    jmp Label2
Label2:
    xor ecx, edx
    add edx, edx
    sub edx, ecx
    jmp Label0
Label3:
    xor edx, ecx
    xor edx, eax
    cmp edx, eax
    jne Label1
    jg Label2
    jl finish
Label4:
    mov edx, 50
    mov ecx, 10
    cmp eax, edx
    jg Label5
    jmp Label3
Label5:
    mov edx, 10
    mov ecx, 50
    jmp Label0
finish:
	
	Чему будет равен eax на метке finish?