一个数字,在计算机内部就只是一堆0和1。CPU不知道这个数是表示有符号数还是无符号数,把一个数字当成有符号数解释还是无符号数解释,是由你自己来决定的。
比如,两个字节变量:a = 0, b = 0f0h;
如果你把a和b当成有符号数解释,那a > b;如果你把它们当成无符号数解释,则a < b。
现在比如al = 0, bl = 0f0h;
cmp al, bl
上面这个比较,是把它们当成有符号数比较,还是当成无符号数比较呢?CPU是不知道的,要由你自己用接下来的跳转指令来告诉CPU。
比如:
cmp al, bl
jg Exit
说明你是把它们当成有符号数来比较的。
而cmp al, bl
ja Exit
说明你是把它们当成无符号数来做比较。
你只有选择了合适的跳转指令,CPU才能做出正确的跳转判断。