Hints
Выделить буффер состоящий из X*Y байт V
.fill X, Y, V .fill 16, 1, 'a'
1. Работа с памятью
movb %bl, (%rsi) # Записать байт из регистра bl по адресу в регистре rsi movl %rbx, (%rsi) # Записать long (64 bit) из регистра rbx по адресу в регистре rsi movb (%rsi), %bl # Прочитать байт, находящийся по адресу из регистра rsi в регистр bl movl (%rsi), %rbx # Прочитать long (64 bit), находящийся по адресу из регистра rsi в регистр rbx
2. Установка gdb.peda
git clone https://github.com/longld/peda.git ~/peda echo "source ~/peda/peda.py" >> ~/.gdbinit
3. Настройка DOSBox для занятий
- Скачайте и установите DOSBox
- Скачайте и распакуйте архив с материалами (DOS.zip)
-
В конце файла конфигураци DOSBox
%HOMEPATH%\AppData\Local\DOSBox\dosbox-0.74.conf
добавьте строчкуMOUNT C ПутьДоРаспакованногоАрхива
- NortonCommander:
dos/NC/NC.bat
- Для просмотра справки в NortonCommander:
Shift+F1
4. Продвинутая работа с консолью в Linux
4.1. Отключение вывода символов при нажатии на клавиши
Для того чтобы сиволы при вводе не отображались в терминале необходимо изменить его атрибуты.Для этого необходимо использовать функцию termios. Подробнее с ней знакомятся во втором семестре АСВТ
Пока воспользуемся специальной "библиотекой". Для сборки и линковки используем не as/ld, а gcc:
gcc getch.c program.s -o program
4.2. Цветной вывод, очистка экрана, перемещение курсора
Для того, чтобы текст был цветным, а курсор "перемещался" по консолиНужно вывести на консоль соответсвующую escape-последовательность.
Любая esc-последовательность начинается с символа esc: `\x1B` (код - 27)
Полный список esc-последовательностей можно найти на странице ANSI_escape_code.
"\x1B[?25l" # Скрыть курсор