Другие языки программирования и технологии

Программисты, хочу освоить Ассемблер, никак не могу, посоветуйте начинающему, дайте ссылок, про асм незнаю ниче!

Зачем тебе ассамблер? не лучше использовать то что более востребовано и не так старо? Php, python,haskell; c++ на крайняк, ну или начать с Паскаля, что бы основные структуры понять, смысла изучать асм не вижу, учитывая то что это язык низкого уровня, да и не новый совсем, то найти обучающую литературу будет проблематично
АЧ
Алексей Чурсанов
1 527
Лучший ответ
Учи С/С++ там и встроенный ASM можешь использовать или подключать модули написанные на MASM-е, правда в компилере от Microsoft убрали 64-битный встроенный ASM. вот пример накидал линейный поиск на 32-битном ASM синтаксис INTEL который поддерживает компилятор от Microsoft и Borland, а в gcc по умолчанию синтаксис AT.

#include <stdio.h>

// встроенный ASM INTEL x86(32-bits)
__declspec(naked) int __cdecl _find(const int* arr, size_t cnt, int val){
__asm {
push ebp
mov ebp, esp
mov esi, [ebp + 8]
mov ecx, [ebp + 12]
mov edx, [ebp + 16]
_next:
cmp [esi], edx
je _yes;
add esi, 4
dec ecx
jnz _next;

mov eax, -1
jmp _end;
_yes:
mov eax, [ebp + 12]
sub eax, ecx
_end:
pop ebp
ret
};
}

int main(void){
int a[] = { 1, 0, 2, 5, 4, 3 };
size_t n = sizeof(a)/sizeof(a[0]);

printf("index of: %d\n", _find(a, n, 5));
printf("index of: %d\n", _find(a, n, 3));
printf("index of: %d\n", _find(a, n, 0));
return 0;
}

Похожие вопросы