Size: a a a

Ассемблер

2021 April 13

A

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

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
они разные (по размеру отличаются), но al является частью бОльшего регистра  - eax, разделяет с ним 1 павмять, общие транзистры.
источник

AM

Alexander Morozov in Ассемблер
mov bx,s
  mov cx,length
cicle_label:
  mov al,[bx]
  inc bx
  ... ; здесь делаем то, ради чего перебираем строку.
 loop cicle_label
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
поэтому если изменишь al, то и младшая часть регистра eax тоже изменится
источник

3I

33 Ivan in Ассемблер
Спасибо
Теперь понимаю смысл происходящего
источник

3I

33 Ivan in Ассемблер
А еще, если не сложно, можете рассказать чуть подробнее про сам ввод и то какие он параметры принимает?
источник

3I

33 Ivan in Ассемблер
И всегда ли ввод в консоль имеет такой вид
источник

AM

Alexander Morozov in Ассемблер
В UNIX все есть файл. Одним из файлов является консоль. Один файл от другого отличается номером - дескриптором или, на английском - handle. Консоль - самый главный файл, поэтому у него номер - 0. При чтении из файла с дескриптором 0 мы читаем символы, вводимые с консоли. При записи в консоль - символы выводятся в терминал. При желании можно открыть файл на диске, или даже сетевой сокет, и читать/писать сразу оттуда/туда. Функции read и write будут абсолютно одинаковыми!

Для чтения нужно указать 2 параметра - куда читать и сколько читать. После чтения тоже возвращаются 2 параметра - была или нет ошибка при чтении и фактическое количество прочитанных байт. Точно также при записи. Ошибка и сколько байт удалось записать.
источник

3I

33 Ivan in Ассемблер
Большое спасибо
источник

A

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

A

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

AM

Alexander Morozov in Ассемблер
@Aiwan А я так и не нашел описание вызовов FindFirst/FindNext для Linux-а. Может тут это иначе делается?
источник

A

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

AM

Alexander Morozov in Ассемблер
Перебор файлов в каталоге. В DOS делается так. Сначала создаем блок данных с условиями поиска, и вызываем FindFirst. Потом можно искать еще файлы вызывая FindNext и ссылаясь на результаты, возвращенные FindFirst.
источник

s

s54816 in Ассемблер
readdir/getdents
источник

AM

Alexander Morozov in Ассемблер
"gcc -S readdir.c"

Спасибо, посмотрю как оно устроено и как используется.
источник

AM

Alexander Morozov in Ассемблер
@Sk121312 Кстати вот пример, где можно посмотреть на использование стека.

1) Берем программу на C.
2) Компилируем ее gcc с ключём -S.
3) Изучаем полученную после компиляции программу на ассемблере.

Видим такие фрагменты:
 movq  -16(%rbp), %rax
 addq  $19, %rax
 movq  %rax, %rdi
 call  puts@PLT
те данные, которые вытаскиваем из памяти через rbp - компилятор решил сохранить не в сегменте данных, а в стеке!
источник

d

disba1ancer in Ассемблер
А раньше не мог?
источник

3I

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

AK

Aleksey Kislitsa in Ассемблер
Что раньше?
источник