.file "main.c"
Зачем в коде название файла с исходным кодом
.ident "GCC: (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0"
...и версия моей убунты?
Попадают ли они в исполняемый файл при окончательно компиляции и зачем используются?
$ readelf -a hello | grep FILE
28: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c
37: 0000000000000000 0 FILE LOCAL DEFAULT ABS hello.c
38: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c
41: 0000000000000000 0 FILE LOCAL DEFAULT ABS
.comment
объектного файла, а оттуда -- в исполняемый файл:$ objdump -s -j .comment hello
hello: file format elf64-x86-64
Contents of section .comment:
0000 4743433a 20284465 6269616e 20362e33 GCC: (Debian 6.3
0010 2e302d31 382b6465 62397531 2920362e .0-18+deb9u1) 6.
0020 332e3020 32303137 30353136 00 3.0 20170516.
Какой тулчейн можно использовать для написания простейшего загрузчика на asm и С++
Почему у меня при отладке (картинка 1), и при чужой отладке (картинка 2) в сегменте, внизу, где четыре строки es, значения совершенно отличаются, хотя это отладка одной и той же программы?
;1 вариант mov ah,02h int 1Ah inc cl mov ah,06h int 1Ah;
Мы получаем текущее время, прибавляем к минутам единицу и настраиваем будильник (случаи, когда 59 минут можно не рассматривать)
inc cl
недостаточно, нужно mov al, cl ; inc al ; daa ; mov cl, al
. Сначала идёт команда 7A - погасить лампочку. Команда загружает в регистр R0 число 2. Почему?
Далее идёт команда F8 Описание этой команды M(R(P)) → D; R(P) + 1 → R(P)
Команда F8 загружает в регистр F8 число 3, хотя команда, судя по описанию, должна прибавлять к регистру R0 число 1 и сохранять результат в R0, значит в R0 должно оказаться число 1.
0: 7A -- reset Q (Q = 0)
1: F8 -- ldi 10 (D = 10)
2: 10
3: B1 -- phi 1 (R(1).1 = D, т.е. R(1) = 1000)
4: 21 -- dec 1 (R(1) = R(1) - 1, т.е. R(1) = fff)
5: 91 -- ghi 1 (D = R(1).1, т.е. D = f)
6: 3A -- bnz 4 (переход к адресу 4, пока D != 0)
7: 04
8: 31 -- bq 0 (переход к адресу 0 если Q == 1)
9: 00
a: 7B -- set Q (Q = 1)
b: 30 -- br 1 (переход к адресу 1)
с: 01
d: 00 -- idle (никогда не попадаем сюда).
Есть исходный код на Си, который вызывает функцию на ассемблере, но передаваемые аргументы как получить,
что не так?
0x7c00: mov $0x4f01,%ax
0x7c03: mov $0x100,%cx
0x7c06: mov $0x7c77,%di
0x7c09: int $0x10
(gdb) x/6hx $di
0x7c77: 0x00bb 0x0007 0x0040 0x0040 0xa000 0x0000
Вся проблема в том что не понимаю я структуры дескриптора..
db 0xFF, 0xFF, 0x00, 0x00, 0x00, 10011010b, 11001111b, 0x00
Я не могу понять именно как происходит этот прыжокjmp 00001000b:pm_entry use32 pm_entry:
Мне дан файл input.txt, в котором находится строка, где через пробел указаны числа (их число неизвестно). Требуется узнать их сумму.
...
мне кажется, что тут всё запутано и можно легче. Подскажите как.
Нужен ли ASSEMBLER специалисту по информационной безопасности?
...
В интернете все разделились на 2 лагеря: одни говорят, что он устарел и на замену ему пришли высокоуровневые языки программирования...