Size: a a a

Ассемблер

2020 August 29

A

Aleksandr in Ассемблер
Еще можно для CHIP8
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
получится интерпретируемый risc ориентированный ассемблерный скрипт
источник

AN

Alex Naraito in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
Чет мне в голову вьелась мысль написать виртуальную машину для MMIX на асме
Это для меня сейчас похоже больше на чёртову магию )
источник

AN

Alex Naraito in Ассемблер
Если всё же начнёшь, то желаю удачи
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Alex Naraito
Если всё же начнёшь, то желаю удачи
сначало надо закончить текущие
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Alex Naraito
Это для меня сейчас похоже больше на чёртову магию )
для меня тоже, пока не попробую
источник

AN

Alex Naraito in Ассемблер
Я вроде где-то видел стримы, на которых чел на асме делал байт-код машину, тебе такие видео могут помочь?
источник

a

asm in Ассемблер
Добро пожаловать, Sam
источник

E

Erbe in Ассемблер
Здравствуйте, помогите пожалуйста разобраться, недавно начал учить асм.
[sam@localhost FASM]$ gcc hello.s -o hello
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/10/../../../../lib64/crt1.o: в функции «_start»:
(.text+0x24): неопределённая ссылка на «main»
collect2: ошибка: выполнение ld завершилось с кодом возврата 1

Мне
кажется что проблема возникла с линковщиком
источник

s

s54816 in Ассемблер
Erbe
Здравствуйте, помогите пожалуйста разобраться, недавно начал учить асм.
[sam@localhost FASM]$ gcc hello.s -o hello
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/10/../../../../lib64/crt1.o: в функции «_start»:
(.text+0x24): неопределённая ссылка на «main»
collect2: ошибка: выполнение ld завершилось с кодом возврата 1

Мне
кажется что проблема возникла с линковщиком
А где hello.s?
источник

E

Erbe in Ассемблер
s54816
А где hello.s?
сам код? Я немного не понимаю еще всех нюансов, простите за тупость :с
источник

s

s54816 in Ассемблер
Erbe
сам код? Я немного не понимаю еще всех нюансов, простите за тупость :с
Да. Наверняка там .global забыт или что-то типа того.
источник

E

Erbe in Ассемблер
s54816
Да. Наверняка там .global забыт или что-то типа того.
.data   /*Поместить следующее в сегмент данных*/
hello_str: /*Наша строка*/
       .string "Hello, World!\n"

       .set hello_str_lenght, . - hello_str - 1 /*Длинна строки*/

.text /*Поместить следующее в сегмент кода/*

.globl main /*main - глобальный символ, видимый за пределами текущего файла*/
.type main, @function /*main - функция (не данные)*/

main:
       movl  $4, %eax /*Поместить номер сис. вызова write=4 в регистр %eax*/

       movl  $1, %ebx /*Первый параметр - в регистр %ebx, номер файлового
                        дескриптора stdout - 1*/

       movl $hello_str, %ecx /*Второй параметр - в регистр %ecx, указатель на строку*/

       movl $hello_str_lenght, %edx /*Третий параметр - в регистр %edx;Длина строки*/

       int $0x80 /*Вызвать прерывание 0x80*/

       movl $1, %eax /*Номер системного вызова exit - 1*/
       movl $0, %ebx /*Передать 0 как значение параметра*/
       int $0x80 /*Вызвать exit(0)*/

       .size main, . - main  /*Размер функции main*/
источник

s

s54816 in Ассемблер
Erbe
.data   /*Поместить следующее в сегмент данных*/
hello_str: /*Наша строка*/
       .string "Hello, World!\n"

       .set hello_str_lenght, . - hello_str - 1 /*Длинна строки*/

.text /*Поместить следующее в сегмент кода/*

.globl main /*main - глобальный символ, видимый за пределами текущего файла*/
.type main, @function /*main - функция (не данные)*/

main:
       movl  $4, %eax /*Поместить номер сис. вызова write=4 в регистр %eax*/

       movl  $1, %ebx /*Первый параметр - в регистр %ebx, номер файлового
                        дескриптора stdout - 1*/

       movl $hello_str, %ecx /*Второй параметр - в регистр %ecx, указатель на строку*/

       movl $hello_str_lenght, %edx /*Третий параметр - в регистр %edx;Длина строки*/

       int $0x80 /*Вызвать прерывание 0x80*/

       movl $1, %eax /*Номер системного вызова exit - 1*/
       movl $0, %ebx /*Передать 0 как значение параметра*/
       int $0x80 /*Вызвать exit(0)*/

       .size main, . - main  /*Размер функции main*/
источник

E

Erbe in Ассемблер
Спасибо!
источник

s

s54816 in Ассемблер
Erbe
Спасибо!
Не спасибо. Так оно тоже не работает :)
источник

E

Erbe in Ассемблер
s54816
Не спасибо. Так оно тоже не работает :)
я уже читаю во всю :D
источник

E

Erbe in Ассемблер
s54816
Не спасибо. Так оно тоже не работает :)
The need for name mangling arises where the language allows different entities to be named with the same identifier as long as they occupy a different namespace (typically defined by a module, class, or explicit namespace directive) or have different signatures (such as in function overloading).

смотря
на свой код и видя два main я думаю, что проблема в этом, но не уверен :)
источник

s

s54816 in Ассемблер
Erbe
The need for name mangling arises where the language allows different entities to be named with the same identifier as long as they occupy a different namespace (typically defined by a module, class, or explicit namespace directive) or have different signatures (such as in function overloading).

смотря
на свой код и видя два main я думаю, что проблема в этом, но не уверен :)
Короче, если поменять местами type и globl, всё начинает работать. Скажем спасибо gas за проблемы на пустом месте. Декорировать main не нужно.
источник

E

Erbe in Ассемблер
s54816
Короче, если поменять местами type и globl, всё начинает работать. Скажем спасибо gas за проблемы на пустом месте. Декорировать main не нужно.
да я уже поменял, извините, что не отписал, но мне все же не понятно почему возникают такие ошибки
источник