我正在尝试在Linux环境中学习汇编-- x86。我能找到的最有用的教程是。我自己设置的任务很简单:读取文件并将其写入stdout。
这就是我所拥有的:
section .text ; declaring our .text segment
global _start ; telling where program execution should start
_start: ; this is where code starts getting exec'ed
; get the
我需要一些帮助,以理解用BrokenThorn的引导程序加载内核的逻辑。
守则:
LOAD_IMAGE:
mov ax, WORD [cluster] ; cluster to read
pop bx ; buffer to read into
call ClusterLBA ; convert cluster to LBA
;xor
最近我在C中遇到了asm保留词,我想利用它来避免某些C语义规则:特别是,我想从函数中修改一个变量:
int a = 5;
asm("asm code to change a from 5 to, like, 6")
int main() {
printf("a equal to %d\n", a);
}
现在,从我的计算机科学课程中,我知道组装是依赖于平台的,所以它的使用应该是非常有限的。然而,我看到了一些反复的指令,如MOV或ADD。
我的问题是:
尽管程序集依赖于全局平台,但是否有一个子集为所有汇编程序所理解?我的意思是,如果我编写asm(