Size: a a a

Ассемблер

2021 April 13

L

Lee in Ассемблер
Понял, спасибо
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
можешь и через стек, но вызывая системные функции будь добр плясать под песенку ОС
источник

3I

33 Ivan in Ассемблер
Привет
Пишу на nasm под linux
После ввода строки хочу вывести первый символ однако регистр al выводит всю строку
Вопрос: как вывести первый символ?
Код:

Mov eax, 3
Xor ebx, ebx
Mov ecx, s
Mov edx, 215
Int 0x80
Mov [F], al

Потом вывожу F
Перед выполнением F пустое, а s определено в bss
s resb 1024
источник

AM

Alexander Morozov in Ассемблер
Это точно та функция?

print_msg:
   mov eax,4
   mov ebx,1
   mov ecx,start_msg
   mov edx,start_msg_size
   int 0x80

Для fasm в Linux печать строки выглядит так.
источник

3I

33 Ivan in Ассемблер
Это функция ввода а не печати
источник

3I

33 Ivan in Ассемблер
Проблема в ней
источник

3I

33 Ivan in Ассемблер
И это nasm
источник

3I

33 Ivan in Ассемблер
С выводом проблем никаких
источник

3I

33 Ivan in Ассемблер
Но я не понимаю как взять первый символ из строки
источник

3I

33 Ivan in Ассемблер
На тасме это делает al, но это в тасме
источник

AM

Alexander Morozov in Ассемблер
После чтения в eax будет количество прочитанных байт. Поэтому в F попадет не строка, а младший байт ее длины.
источник

A

Aleksandr in Ассемблер
Кажется, ты несколько запутался
источник

AM

Alexander Morozov in Ассемблер
read_file:
   mov ebx,eax ; handle
   mov eax,03  
   mov ecx,image_buf_1 ; Буфер
   mov edx,image_buf_1_size ; Размер
   int 0x80
   test eax,eax
   jz error_r
   mov edi,image_size
   stosd
источник

A

Aleksandr in Ассемблер
Смысл регистров и особенности работы с ними определяются архитектурой процессора и сторонними модулями, а не твоим ассемблером
источник

3I

33 Ivan in Ассемблер
Ввод и вывод
Вывожу eax
источник

3I

33 Ivan in Ассемблер
Да, ты прав
источник

3I

33 Ivan in Ассемблер
Смысл регистров и особенности работы с ними определяются архитектурой процессора и сторонними модулями, а не твоим ассемблером
источник

3I

33 Ivan in Ассемблер
Я пытаюсь разобраться, но выходит скверно
источник

AM

Alexander Morozov in Ассемблер
А F где описано? Может там строка а-ля TurboPascal, где байт 0 это ее длина? Но тогда она должна иначе выводится на печать ...
источник

3I

33 Ivan in Ассемблер
F: db '0'
источник