Загрузчик нормально работает при загрузке 1 сектора
$ nasm test.s -o test
$ head -c 2b /dev/urandom >> test
$ hexdump -Cv test | tail -n2
000005f0 49 93 ad 56 25 97 25 82 61 1d d9 a1 66 2a cb 19 |I..V%.%.a...f*..|
00000600
$ qemu-system-i386 -hda test -gdb tcp::1235 -S$ wget https://gist.githubusercontent.com/MatanShahar/1441433e19637cf1bb46b1aa38a90815/raw/2687fb5daf60cf6aa8435efc8450d89f1ccf2205/target.xml$ gdb
(gdb) set tdesc filename target.xml
warning: A handler for the OS ABI "GNU/Linux" is not built into this configuration
of GDB. Attempting to continue with the default i8086 settings.
(gdb) target remote :1235
(gdb) set disassembly-flavor intel
(gdb) b *0x7c32
Breakpoint 2 at 0x7c32
(gdb) c
Continuing.
Breakpoint 2, 0x00007c32 in ?? ()
(gdb) x/2i $pc
=> 0x7c32: int 0x13
0x7c34: jb 0x7c3e(gdb) tb *0x7c34
Temporary breakpoint 3 at 0x7c34
(gdb) c
Continuing.
Temporary breakpoint 3, 0x00007c34 in ?? ()
(gdb) x/16x 0x13f0
0x13f0: 0x49 0x93 0xad 0x56 0x25 0x97 0x25 0x82
0x13f8: 0x61 0x1d 0xd9 0xa1 0x66 0x2a 0xcb 0x19mov dl, 80h для выбора первого ЖД, для определённости. Хотелось бы овладеть той математической базой чтобы +- свободно ориентироваться в книге и понимать ее, чтобы знания откладывались а не просто страницы переворачивались.
#include <iostream>
#include <thread>
#include <vector>;
using namespace std;
void go(int p) {
while (1) {
cout << p << endl;
}
}
void main() {
thread *t[3];
for (int i = 0; i <= 2; i++) {
t[i] = new thread(go, i);
cout << 123;
}
for (int i = 0; i <= 2; i++) {
t[i]->join();
delete t[i];
}
} dch -v $$VERSIONexport VERSION=$(shell read -p "Version: ";echo $$REPLY) экспортирует переменную внутри shell, а $(VERSION) ссылается на переменную make а не на переменную shell.Как вариант, подойдет `make dchv 1.3.4` , но научить makefile такое делать - лютый геморрой :(
make dchv VERSION=1.3.4 и выкинуть код по вводу переменной VERSION из правила dchv, т.е. оставить только dch -v $(VERSION) Как исправить?
-fsanitize=address, что у M$ для этого есть я не знаю. int a(10); // работает
MyStruct b(); // не работает
int a(); // не работает
MyStruct b(); // не работаетint a(10); // работает
MyStruct b(10); // работаетПочему не обнуляется регистр cx?
A1:
push ax
push cx
push dx
push di
xor cx, cx
mov di, 10
mov cx, [bx+2]A1:
push ax
push cx
push dx
push di
xor cx, cx
mov di, 10
mov cl, [bx+1]firstNum db 6,0,6 dup(?).A2:
xor dx, dx
mov dx, [bx+si]
sub dx, '0'
add ax, dx.A2:
xor dx, dx
mov dl, [bx+si]
sub dl, '0'
add ax, dxA1:
push ax
push cx
push dx
push di
...
pop si
pop di