 |
::
Меню :: |
 |
|
|
 |
::
Друзі :: |
 |
|
|
 |
::
Лічильники :: |
 |
|
|
|
Чому Segmentation fault? Допоможіть знайти помилку у програмі GNU Assembler x64 Linux
Петро Пивоварів
Чому Segmentation fault? Допоможіть знайти помилку у програмі GNU Assembler x64 Linux
.global _start .text _start: call write31 call writeSpace call write18 call writeSpace call write79 call writeLineend # exit(0) mov $60, %rax xor %rdi, %rdi syscall write: # write(1, %rsi, % $1, %rdi mov $1, %rax mov %rcx,%r9 syscall mov %r9,%rcx loop write ret writeLineend: mov $1,%rcx mov $lineend, %rsi mov $1,%rdx call write write31: mov $2, %rdx mov $1, %rcx mov $_31, %rsi call write writeSpace: mov $2,%rdx mov $2, %rcx mov $space, %rsi call write write18: mov $2,%rdx mov $1, %rcx mov $_18 , %rsi call write write79: mov $2, %rdx mov $1, %rcx mov $_79, %rsi call write _31: .byte 0x33,0x31 _18: .byte 0x31,0x38 _79: .byte 0x 0x00,0x20 lineend: .byte 0x0A Повинно вивести 31 18 79
Відповіді:
дід Мазай
Напиши програму на Сі. Відкомпілюй з оптимізацією за розміром коду. У відладчику дивись дизассембльований код, скопіюй його звідти, вивчай і змінюй. Або дивись у налагоджувачі, в якому рядку відбувається помилка. Дивно, що в кінці написано call write, а далі немає коду.
|
 |
::
Наша кнопка :: |
 |
|
 |
Отримати код:
|
Підтримайте наш сайт і розмістіть нашу
кнопку на своєму ресурсі. |
|
|
 |
::
Популярне :: |
 |
|
|
 |
:: Посилання :: |
 |
|
|
|