Size: a a a

Ассемблер

2021 May 07

K

Kashira in Ассемблер
то есть просто mov S[0], 10 и все, вся задача?
источник

K

Kashira in Ассемблер
а если типа в строке меньше 10 символов, и напишу в 0 элемент 10, ошибки не будет?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
источник

AM

Alexander Morozov in Ассемблер
Попробовал через файл консоли. Действительно, поведение не такое, как требуется.

format ELF64 executable 3
entry start

segment readable executable

start:
   ; Читать из консоли
   mov eax, 3 ; Читать
   mov ebx, 1 ; Консоль
   mov ecx, buf ; Буфер
   mov edx, buf_size ; Максимальный размер
   int 0x80
   mov [real_size], eax ; Реальный размер

   ; Писать в консоль
   mov eax, 4 ; Писать
   mov ebx, 1 ; Консоль
   mov ecx, buf ; Буфер
   mov edx, [real_size] ; Реальный размер
   int 0x80

   mov eax,1
   xor ebx,ebx
   int 0x80

segment readable writeable

buf_size = 10

real_size dd ?
buf db buf_size dup (?)

можно ввести строку любой длины до нажатия Enter. После этого buf_size элементов "поглощается" программой, остальное продолжает висеть во входном буфере. Enter тоже передается, если помещается в буфер.

$ ./test_4
abcdefghigklmnop
$ klmnop
bash: klmnop: команда не найдена
источник

A

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

D

Den in Ассемблер
ну да только ему под выньдос же надо
источник

AM

Alexander Morozov in Ассемблер
Поведение, вроде, должно быть одинаково в любой консоли.
источник

D

Den in Ассемблер
о , спасибо! зачитаю вечерком, там много
источник

AM

Alexander Morozov in Ассемблер
А как вообще в Linux можно узнать о нажатии клавиши?
источник

楽園松本 in Ассемблер
Асм нужен там, где нет ос. Микроконтроллеры это именно то самое место. Писать на асме для огромных ОС с кучами прослоек, да ещё с использованием системных вызовов -- это неразумно.
источник

A

Aleksandr in Ассемблер
На самом деле даже на мк асм применяется очень избирательно
источник

A

Aleksandr in Ассемблер
Проекты 100% под асм редко можно найти
источник

NW

Night Warrior in Ассемблер
Все зависит от степени интегрирования схемы мк. Если мк маленький и несложный, и выполняет пару простых функций, то код на ассемблере - самое вкусное
источник

NW

Night Warrior in Ассемблер
Но его реализация в больших микрухах сложна и не разумна из-за высоких разрядностей и кучи приколов
источник

NW

Night Warrior in Ассемблер
Так что ассемблер хорош вставками, я считаю - например, когда маски переключаешь для прерываний. Две команды и норм
источник

楽園松本 in Ассемблер
А я бы вообще его рассматривал как средство взлома
источник

NW

Night Warrior in Ассемблер
Это темная сторона асма
источник

D

Den in Ассемблер
ты имеешь ввиду в консоли? так у тебя ж в исходнике это есть
источник

AM

Alexander Morozov in Ассемблер
У меня программа узнает о введенной строке только после ее полного ввода и нажатия Enter. А я задумался, как можно получить информацию о том, что (и какие) клавиши вообще нажимаются. Например как прослушать события ввода?
источник

D

Den in Ассемблер
да я на асме еще таким вопросом не задавался, на с++ как обычно а на асме надо почитать, вообще там есть файлы всякие, в каталоге proc вроде но точно не вспомню счас, куда данные о обработе  всякого оборудования сбрасываются, потоком, там и фреймбуфер и звук и мышь и порты и hdd и  прочее, из такого файла можно читать мне кажется
источник