Size: a a a

2020 April 23

s

s54816 in pro.asm
Amber Claes
Проблема что после greeting откуда-то берётся make_tea
greeting там тоже нет.
источник

AC

Amber Claes in pro.asm
s54816
greeting там тоже нет.
https://pastebin.com/F3EaJiHH
Вот все файлы
источник

AC

Amber Claes in pro.asm
Извиняюсь, кухню перепутал
источник

s

s54816 in pro.asm
Вот я вижу leave в greeting, а ret не вижу. Это нормально?
источник

AC

Amber Claes in pro.asm
s54816
Вот я вижу leave в greeting, а ret не вижу. Это нормально?
Оооо, спасибо, в этом и была проблема
источник
2020 April 24

ИИ

Искандер Искаков in pro.asm
Мужики, а вот такая конструкция сработает, чисто концептуально?

NASM 64


extern _errno ;libc

 <syscall write/read>
 jnz error
 ret

error:
 call _errno
 ret
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in pro.asm
Искандер Искаков
Мужики, а вот такая конструкция сработает, чисто концептуально?

NASM 64


extern _errno ;libc

 <syscall write/read>
 jnz error
 ret

error:
 call _errno
 ret
источник

ИИ

Искандер Искаков in pro.asm
:D а конструктивно?))) это часть задания просто, используя _errno либсишный иннформацию об ошибке вывести
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Искандер Искаков
Мужики, а вот такая конструкция сработает, чисто концептуально?

NASM 64


extern _errno ;libc

 <syscall write/read>
 jnz error
 ret

error:
 call _errno
 ret
Syscall — это инструкция без параметров. После её выполнения в linux возвращаются значения в регистра общего назначения, не во флагах. Если у тебя будет обертка, тогда работать будет.
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Концептуально :)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in pro.asm
я както просто использовал perror, если в выполнении фукнции была ошибка, то выводилось сообщение
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in pro.asm
источник

ИИ

Искандер Искаков in pro.asm
Да, вот собсна это и задача. Спасибо, пойду играться
источник

ИИ

Искандер Искаков in pro.asm
Ткните пожалуйста носом, почему здесь Address boundary error?



BITS 64
DEFAULT REL ; RIP-relative addressing by default

; compile with:
; nasm -g -f macho64 ft_write.s
; gcc -o a.out ft_write.o main.c


; glibc stuff
extern _errno

; code
section .text

global _ft_write

_ft_write:
 push rsp
 push rax
 push rbp
 push r8

 sub rsp, 16
 mov r8, 0x2000004 ; write syscall location
 lea rax, [r8]
 syscall
 test rax, rax
 jne error

 xor rax, rax
 add rsp, 16
 pop rbp
 pop rax
 pop rsppop r8
 ret
 
error:
 add rsp, 16
 call _errno  
 pop rbp
 pop rax
 pop rsp
 pop r8
 ret
источник

ИИ

Искандер Искаков in pro.asm
extern int ft_write(int fildes, const void *buf, size_t buf_size);


int main(void) {
 ft_write(1, "test", 4);
}
источник

ИИ

Искандер Искаков in pro.asm
Много вопросов задаю, сори. Но реально не понимаю(
источник

ИИ

Искандер Искаков in pro.asm
terminated by signal SIGSEGV (Address boundary error) stack_not_16_byte_aligned_error
источник

R

Rabu in pro.asm
stack not 16 byte aligned
источник

R

Rabu in pro.asm
push rbp
mov rbp, rsp
and rsp, ~(0xf)
источник

R

Rabu in pro.asm
только надо придумать как сломать стек обратно перед выходом
источник