| Название | Размер | Изменён |
| cpu_a9.h | 487 байт | 1098 дн. 1 час. назад |
| gic.c | 1076 байт | 1098 дн. 1 час. назад |
| gic.h | 2492 байт | 1098 дн. 1 час. назад |
Исходные коды (по книге, архитектура ARM, неделя 5, октябрь 2023)
Добавить комментарий
| Название | Размер | Изменён |
| Makefile | 622 байт | 1099 дн. 12 час. назад |
| boot.S | 484 байт | 1099 дн. 12 час. назад |
| console.c | 726 байт | 1099 дн. 12 час. назад |
| console.h | 399 байт | 1099 дн. 12 час. назад |
| grub.cfg | 89 байт | 1099 дн. 12 час. назад |
| io.h | 180 байт | 1099 дн. 12 час. назад |
| linker.ld | 341 байт | 1099 дн. 12 час. назад |
| list.h | 32822 байт | 1099 дн. 12 час. назад |
| main.c | 424 байт | 1099 дн. 12 час. назад |
| sched.c | 1677 байт | 1099 дн. 12 час. назад |
| sched.h | 522 байт | 1099 дн. 12 час. назад |
| types.h | 360 байт | 1099 дн. 12 час. назад |
| Название | Размер | Изменён |
| BasicFunctions.asm | 3102 байт | 1104 дн. 13 час. назад |
| BasicMacros.asm | 13753 байт | 1104 дн. 13 час. назад |
| Lesson3.asm | 8173 байт | 1104 дн. 13 час. назад |
| monitor.asm | 27742 байт | 1104 дн. 13 час. назад |
| Название | Размер | Изменён |
| list.h | 32285 байт | 1106 дн. 1 час. назад |
| Название | Размер | Изменён |
| BasicFunctions.asm | 3102 байт | 1111 дн. 12 час. назад |
| BasicMacros.asm | 13753 байт | 1111 дн. 12 час. назад |
| Lesson2.asm | 22782 байт | 1111 дн. 12 час. назад |
| monitor.asm | 27742 байт | 1111 дн. 12 час. назад |
| Название | Размер | Изменён |
| gic.h | 1841 байт | 1112 дн. 13 час. назад |
Моя программа работает правильно, но завершается некорректно. Я хочу это исправить.
Взял код для завершения программы из hello-world от alexanius-а, убрал команду setwd для настройки регистрового окна. Теперь программа выглядит так
.section ".data"
.section ".text"
.global _start
_start:
{
addd, 0 0x0,0x1,%r1
addd, 1 0x0,0x2,%r2
}
{
addd, 0 %r1,%r2,%r3
}
! Подготавливаем вызов exit
{
sdisp %ctpr2, 0x1
addd, 0 0x0, 0x0, %b[1]
addd, 1 0x0, 0x1, %b[0]
}
! Вызываем exit
{
call %ctpr2, wbs = 0x4
}
Сборка и запуск отработали как нужно
juvescorp@yukari:~/test_asm$ as first_program.s -o first_program.o juvescorp@yukari:~/test_asm$ ld first_program.o juvescorp@yukari:~/test_asm$ ./a.out
Прогнал через отладчик — показывает, что программа завершилась нормально.
juvescorp@yukari:~/test_asm$ gdb a.out GNU gdb (GDB) 9.1-26.018 Copyright (C) 2020 Free Software Foundation, Inc. ... Reading symbols from a.out... (No debugging symbols found in a.out) (gdb) b _start Breakpoint 1 at 0x10078 (gdb) r Starting program: /srv/home/juvescorp/test_asm/a.out Breakpoint 1, 0x0000000000010078 in _start () (gdb) si 0x0000000000010088 in _start () (gdb) si 0x0000000000010090 in _start () (gdb) si 0x00000000000100a0 in _start () (gdb) si [Inferior 1 (process 10880) exited normally]
Файл с исходным кодом программы размещаю здесь
| Название | Размер | Изменён |
| BasicFunctions.asm | 3102 байт | 1118 дн. 0 час. назад |
| BasicMacros.asm | 13753 байт | 1118 дн. 0 час. назад |
| Lesson2.asm | 21508 байт | 1118 дн. 0 час. назад |
| monitor.asm | 27742 байт | 1118 дн. 0 час. назад |
| Название | Размер | Изменён |
| gic.h | 697 байт | 1119 дн. 11 час. назад |