bomb lab part2
phase3
汇编语法
switch 汇编版本
switch 例子:

switch 使用 jump table


movl 指令
cmpl指令是x86汇编语言中的一个比较指令,用于比较两个操作数的值。cmpl指令的格式如下:
cmpl source, destination
source和destination可以是寄存器、内存地址或立即数。指令执行后,会将source和destination进行比较,并根据比较结果设置标志寄存器中的相应标志位。
cmpl指令的比较结果会影响以下标志位:
ZF(Zero Flag):如果两个操作数相等,则ZF标志位被设置为1,否则为0。SF(Sign Flag):如果结果为负数,则SF标志位被设置为1,否则为0。CF(Carry Flag):如果source小于destination,则CF标志位被设置为1,否则为0。OF(Overflow Flag):如果有符号操作数溢出,则OF标志位被设置为1,否则为0。
以下是一些示例,演示了cmpl指令的使用:
movl $10, %eax # 将10存储到eax寄存器
cmpl $5, %eax # 比较eax和5
在这个例子中,我们首先将立即数10存储到eax寄存器中。然后,我们使用cmpl指令将eax和立即数5进行比较。比较结果会根据eax和5的大小关系设置相应的标志位。
cmpl指令可以与条件跳转指令(如je、jne、jl等)结合使用,用于根据比较结果执行不同的代码路径。
请注意,cmpl指令只比较操作数的值,并不修改操作数的内容。如果需要根据比较结果进行其他操作,可以使用条件跳转指令或其他指令来实现。
工具介绍
参考链接
https://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/lectures/05-machine-basics.pdf
https://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/lectures/06-machine-control.pdf
https://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/lectures/07-machine-procedures.pdf



















