Ассемблер
Материал из OpenWiki
Перейти к навигацииПерейти к поиску
Язык программирования низкого уровня. Используется в тех случаях, когда требуется особо высокая скорость работы программы или же получение прямого доступа к ресурсам установленного на компьютере оборудования. Программирование на ассемблере отличается очень высокой трудоемкостью и требует от программиста глубоких знаний компьютерного оборудования и операционной системы.
Пример кода на ассемблере для 64-разрядного процессора фирмы Intel (платформа Linux, компилятор NASM):
;====================================================== ; WriteBuffer ; Действие: записать в файл содержимое буфера ; Параметры: rax=(hFile), rbx=(BufAddr), rcx=(BufSize) ; Возврат: rax=(количество записанных байтов) ; ;---------------------------- global WriteBuffer ;---------------------------- WriteBuffer: push rcx push rdx push rsi push rdi push r11 mov rdi,rax mov rsi,rbx mov rdx,rcx mov rax,1 syscall pop r11 pop rdi pop rsi pop rdx pop rcx ret ;====================================================== ; SetFileContent ; Действие: создать файл и записать в него содержимое буфера ; Параметры: rax=(адрес ASCIZ строки FileName) rbx=(BufAddr) rcx=(BufSize) ; Возврат: эта функция ничего не возвращает ; ;---------------------------- global SetFileContent ;---------------------------- SetFileContent: push rax call CreateFile push rax call WriteBuffer pop rax call CloseFile pop rax ret ;======================================================