История изменений
Исправление quasimoto, (текущая версия) :
Linux/x86_64, обычный библиотечный вызов:
.S:
	.string	"..."
	// puts("...");
	movl	$.S, %edi
	jmp	puts
ещё:
.S2:
	.string	"...\n"
	// %edi = fd
	// write(fd, "...\n", 4);
        movl	$.S2, %esi
	movl	$4, %edx
	jmp	write
ещё:
	// syscall(SYS_write, fd, "...\n", 4);
	movl	%edi, %esi
	movl	$1, %edi
	movl	$.S2, %edx
	movl	$4, %ecx
	jmp	syscall
системный вызов инструкцией:
        movl $1, %eax
        movl $.S2, %esi
        movl $4, %edx
        syscall
        ret
Дальше stdout / dev/tty* — open(«/dev/tty», O_WRONLY), http://www.linusakesson.net/programming/tty/case3.png.
Дальше работа сразу с MMIO/PMIO устройства, например, для VGA видеопамять в 0xB8000, порты 0x3D4, 0x3D5 и т.п.
http://wiki.osdev.org/VGA_Hardware
http://www.jamesmolloy.co.uk/tutorial_html/3.-The Screen.html
http://github.com/torvalds/linux/blob/164c09978cebebd8b5fc198e9243777dbaecdfa...
http://github.com/torvalds/linux/blob/164c09978cebebd8b5fc198e9243777dbaecdfa...
чем отличается переменная в 1 бит от переменной в 2 или 4 бита ?
http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-...
4.1 FUNDAMENTAL DATA TYPES
Исходная версия quasimoto, :
Linux/x86_64, обычный библиотечный вызов:
.S:
	.string	"..."
	// puts("...");
	movl	$.S, %edi
	jmp	puts
ещё:
.S2:
	.string	"...\n"
	// %edi = fd
	// write(fd, "...\n", 4);
        movl	$.S2, %esi
	movl	$4, %edx
	jmp	write
ещё:
	// syscall(SYS_write, fd, "...\n", 4);
	movl	%edi, %esi
	movl	$1, %edi
	movl	$.S2, %edx
	movl	$4, %ecx
	jmp	syscall
системный вызов инструкцией:
        movl $1, %eax
        movl $.S2, %esi
        movl $4, %edx
        syscall
        ret
Дальше stdout / dev/tty* — open(«/dev/tty», O_WRONLY), http://www.linusakesson.net/programming/tty/case3.png.
Дальше работа сразу с MMIO/PMIO устройства, например, для VGA видеопамять в 0xB8000, порты 0x3D4, 0x3D5 и т.п.
http://wiki.osdev.org/VGA_Hardware
http://www.jamesmolloy.co.uk/tutorial_html/3.-The Screen.html
http://github.com/torvalds/linux/blob/164c09978cebebd8b5fc198e9243777dbaecdfa...
http://github.com/torvalds/linux/blob/164c09978cebebd8b5fc198e9243777dbaecdfa...
чем отличается переменная в 1 бит от переменной в 2 или 4 бита ?
http://download.intel.com/design/processor/manuals/253665.pdf
4.1 FUNDAMENTAL DATA TYPES