“线程”是操作系统分配给CPU的最小运行单位。源代码的一个函数就相于一个线程。多线程处理指的是在一个程序中同时运行多个函数的意思。
循环处理的实现方法
在汇编语言的源代码中,循环是通过比较指令(cmp)和跳转指令(jl)来实现的。
汇编语言中比较指令的结果,会存储在CPU的标志寄存器中。
汇编语言中有多个跳转指令,这些跳转指令会根据标志寄存器的值来判定是否需要跳转。
汇编语言是对CPU的实际运行进行直接描述的低级编程语言,C语言是用与人类的感觉相近的表现来描述的高级编程语言。
条件分支的实现方法
条件分支的方法的实现方法同循环处理的实现方法类似,使用的也是cmp指令和跳转指令。
虽然大部分的C语言参考书中都写着“为了便于理解程序的结构,应尽量避免使用无条件分析的goto语句”,不过,在汇编语言这一领域中,如果不使用相当于C语言goto语句的jmp指令,就无法实现循环和条件分支。由些看来,关于应不应该在C语言中使用goto语句,大家没有必要这么紧张。
了解程序运行方式的必要性
汇编语言的经验还是很重要的。因为借助汇编语言,我可以更好的了解计算机的机制。在某些情况下对查找bug的原因也是有帮助的。(像多线程锁的本质原因)
没有汇编语言经验的程序员,就相当于只知道汽车的驾驶方式而不了解汽车结构的驾驶员。如果汽车出了问题,他们就无法自己找到原因。与此相对的,有汇编经验语言经验的程序员,他们不仅能自己解决问题,还能在驾驶过程中省油。
看来还得接着重新学习一下汇编语言。