早教吧 育儿知识 作业答案 考试题库 百科 知识分享

汇编语言的问题若AL=80H,执行NEGAL后,CF和OF标志的状态分别为(C)A.0和0B0和1C1和0D1和1不就是把80H求补吗,正数求补是它本身呀,哪来的进位啊?

题目详情
汇编语言的问题
若AL = 80H,执行NEG AL后,CF和OF标志的状态分别为( C )
A.0 和 0 B 0和1 C1和0 D1和1
不就是把80H求补吗,正数求补是它本身呀,哪来的进位啊?
▼优质解答
答案和解析
80H是负最大数:1000 0000,首位是1,所以是负数;既然是负数,说明后面的7位都是以补码的形式存储的,即其数值实际为111 1111,即7FH.所以-7FH的负号用符号位表示,就是80H了.
80H取补码,即1000 0000取补码,就是0111 1111,即+7FH,即-7FH的相反数.
注意:NEG命令只管将其后的二进制取补码,而不管这个二进制数是正数还是负数.而“补码”的含义就是“两个8(16)位数相加,恰好能够向第9(17)位进1,那么这两个二进制数就互为补码”.