Где я натупил?
$ cat test.S
.text
far_jump_to_kernel:
.byte 0x66
.byte 0xEA
.word 0x7777
.short 0x0008
$ gcc -c -m32 test.S -o test.o
$ objdump -d test.o
test.o: file format elf32-i386
Disassembly of section .text:
00000000 <far_jump_to_kernel>:
0: 66 ea 77 77 08 00 ljmpw $0x8,$0x7777
Пытался смоделировать дифракцию на круглом отверстии, но верный ответ получается только в центре.
Использовал интеграл Кирхгофа в виде суммы
Дело в том, что при загрузке программы загрузчик перезаписывает в ней всякие адреса, которые используются при вызовах функций и переходах.
es
, ds
и si
в момент выполнения инструкции lodsb
и что находится по этим адресам в памяти. По той же логике и в 100 Гц будут присутсвовать составляющие высоких частот и они же не зависимы от часоты всегда будут там?
Частота дискретизации у меня в 4 раза больше частоты сигнала. По заданию частота может быть от 100 Гц до 2 КГц.
У меня они в 2 разных сегментах. Как между ними правильную связь сделать?
es
если бы использовалась инструкция stosb
, но в этом коде этого не происходит. да, действительно запустил clang 1.c && ./a.out
и код из примера с гайда заработал корректно.
gcc 1.c && ./a.out
-- у вас реально работает по-другому? 1. Как ее сделать исполняемой? Я настроил сегмент так же, как "родной" сегмент. Поставил галочки на read, write, задал те же регистры в assume. При том при дебаге видно, что шаг на мою функцию доходит, но функция вызова становится пустой (db 0).
2. Не знаю как сделать возврат
В Linux - диски монтируются в систему.
Круглые скобки работают внутри [[ ]], но не работают внутри [ ].
if [ \( "$projectDir" = "video" -o "$projectDir" = "audio" \) -a "$flag" != "noflag" ]
if [ '(' "$projectDir" = "video" -o "$projectDir" = "audio" ')' -a "$flag" != "noflag" ]
-d in_asm,exec,cpu -D logfile
) и посмотри, что происходит.
- как именно ты отлаживаешь свою программу?
- в каком режиме находится процессор в момент выполнения этой инструкции?
- что в gdt?