汇编语言与操作系统知识解析
1. 直接和间接寻址
某些指令会将指令自身编码的数据用作源操作数,这类操作数被称为立即操作数。例如:
ADD EAX, 14
此 ADD 指令将立即值 14 加到 EAX 寄存器的内容中。除 DIV 和 IDIV 指令外,所有算术指令都允许源操作数为立即值。立即操作数的允许最大值因指令而异,但绝不能超过无符号双字整数的最大值($2^{32}$)。
寄存器操作数可作为源操作数,目的操作数则可根据执行的指令选择任意寄存器。部分指令(如 DIV 和 MUL 指令)会使用一对 32 位寄存器中的四字操作数,寄存器对用冒号分隔表示,像 EDX:EAX 中, EDX 包含四字操作数的高位, EAX 包含低位。
还有一些指令(如 PUSHFD 和 POPFD 指令)用于加载和存储 EFLAGS 寄存器的内容,或设置、清除该寄存器中的单个标志。其他指令会将 EFLAGS 寄存器中状态标志的状态用作分支或其他决策操作的条件码。
处理器包含一系列系统寄存器,用于控制内存管理、中断和异常处理、任务管理、处理器管理以及调试活动。应用程序、操作系统或执行程序可通过
超级会员免费看
订阅专栏 解锁全文
798

被折叠的 条评论
为什么被折叠?



