MegaCraZy6
@MegaCraZy6
Юзерь

Linux NASM чтение и вывод содержимого файла?

Действую по плану
- Open ( получаю дескриптор файла )
- Read ( Читаю по дескриптору файл )
- Write ( Пишу в дискриптор терминала то что прочитал )

Но какая-то беда нету вывода никакого

SECTION .text
global _start

_start:
mov eax,05  ;; Подпрограмма Open
mov ebx,file ;; Помещаю адресс строки названия файла
mov ecx,00  ;; Флаг только чтение 
int 0x80       
mov ebx,eax ;; Теперь если я правильно понял в EAX лежит дескриптор, его ложу в EBX
mov eax,03   ;; Подпрограмма Read
mov ecx,buff ;; Помещаю адресс куда читать
mov edx,4096 ;; Сколько читать
int 0x80
mov eax,04 ;; Подпрограмма Write
mov ebx,01 ;; Дискриптор терминала ( вивод )
mov ecx,buff ;; Помещаю адресс буффера откуда писать
mov edx,4096 ;; Сколько читать
int 0x80
jmp $ ;; Зависаю...



SECTION .data
file db "test_01.asm",0 ;; Массив с названием файла
buff resb 4096 ;; Резерв для буффера
db 0 ;; Так на всякий :D Мои методы


PS: Кодер из меня ни какой, а под линукс только начал кодить.
  • Вопрос задан
  • 1247 просмотров
Решения вопроса 2
mindtester
@mindtester
http://iczin.su/hexagram_48
1 - меня смущает "int 0x80" это вызов прерывания с шеснадстиричным номером 80 (для доса была типичная команда int 21... или int 0x21??) но разве это работает в x64 системах? (сам не в курсе, давно не "брал в руки шашек")

2 - не пробовали гуглить? Linux ASM чтение и вывод содержимого файла .. да и выполнять задачи более атомарно... для начала просто хоть что то вывести на экран?
Ответ написан
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
какая-то беда нету вывода никакого

запусти свою программу под strace: strace -i -v test и увидишь, какие системные вызовы и с какими аргументами она делает с каких адресов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы