签名,携带和溢出标志(组装)

use*_*802 3 assembly

.data
val1 BYTE 10h
val2 WORD 8000h
val3 DWORD 0FFFFh
val4 WORD 7FFFh
Run Code Online (Sandbox Code Playgroud)

如果使用ADD指令将val2递增1,那么进位和符号标志的值是多少?

如果使用ADD指令将val4递增1,那么溢出和符号标志的值是多少?

我回答了两个问题并且错了.为什么答案是什么?

rkh*_*khb 14

想象一下它是一种模拟时钟.在真实时钟中,"六五十五"(55)和"五到七"(-5)的时间是相同的.这只是你定义的一个问题,时钟本身并不知道你的定义并且循环和循环运行......与CPU相同.看下面的"CPU时钟":

CPU时钟(加法)

我选择了一个4位时钟,但每个其他位组(BYTE,WORD,DWORD等)的原理相同.

在时钟从15跳到0之后,进位标志将被置位.在这种情况下,是无符号溢出的标志.

时钟从7跳到-8后,将设置溢出标志.它标记有符号的溢出.

符号标志标记可以解释为负数的值.

如果向下计数,标志的行为会略有不同:

CPU时钟(减法)