鱼C论坛

 找回密码
 立即注册
查看: 2555|回复: 3

标志寄存器sf的问题

[复制链接]
发表于 2014-5-23 21:04:50 | 显示全部楼层 |阅读模式
20鱼币
本帖最后由 xiaosawanjava 于 2014-5-23 21:10 编辑

)TC~4T9P28UI_NLC6Y`V[}Q.jpg
按照我所想的最后一条指令 mul al   应该是12*12=144 = 1001 0000  ,  ZF =0   PF = 1 SF = 1


但是答案 SF = 0 ,这里我怎么想也没想明白??


还有就是 SF 是根据结果的最高位来设置的吗,那到底是根据第8位还是根据第16位来判断的,
比如我进行的是  16 位运算 add ax,bx   ,还是说如果8位运算就看第8位,16位运算就看16位啊?

最佳答案

查看完整内容

SF标志是符号标志,什么意思,就是SF=0意思就是说这个数是正,SF=1表示的是负数,这是CPU设计它的根本原因,如add sub指令需要,但是前提是你的了解无符号数和有符号数(补码)的区别。无符号数加减的时候就不用判断SF了,无意义,只看CF ZF OF !
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-23 21:04:51 | 显示全部楼层
SF标志是符号标志,什么意思,就是SF=0意思就是说这个数是正,SF=1表示的是负数,这是CPU设计它的根本原因,如add sub指令需要,但是前提是你的了解无符号数和有符号数(补码)的区别。无符号数加减的时候就不用判断SF了,无意义,只看CF ZF OF !
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-23 21:42:43 | 显示全部楼层
本帖最后由 xiaosawanjava 于 2014-5-23 21:44 编辑

看来这分也就自己拿了,已经解决了,SF=0 是因为 mul 结果是放在ax中,ax最高位是为0,所以sf 是为0,然后这个问题也说明,结果如果是存放在8位的寄存器或者存储器,那SF 就看第8位,否则就看第16位是多少。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-23 22:47:23 | 显示全部楼层

  反正也就你一个人来帮我,反正分是要给的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-30 04:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表