2006年10月1日汇编符号标志被设置的时间

来源:互联网 发布:复星金服 知乎 编辑:程序博客网 时间:2024/05/16 15:59
  2006年10月1日 星期天 天气晴   Last Modify: oct 1 2006
==================================================================================
 中华人民共和国57年国庆就在今天!今日主打汇编。
 拷入43.asm的一部分
 ;Sign flag example:
 comment @
 此处需要特别注意一点,符号标志是当算术运算结果为负的时候被设置的(置1)
 也就是说在没有算术运算的时候SF标志的值并不发生变化。
 在下面的4行的程序中,SF在第二行的时候被置1,在进行完第三行的赋值后
 SF的值并没有发生变化,仍然为1,如果最后一行为Sub 2的话SF被置0,但是此处
 程序为加2,导致符号位(第8位)被置1,也就是被认为是负数,所以SF被置1。
 @
 mov cx,0
 sub cx,1   ;SF=1
 mov ax,7fffh ;ax=32767 (15位二进制数:111 1111 1111 1111)
 add ax,1   ;SF=1
-----Feb 2, 2007 Added----------------
当然我们可以用LAHF载入符号寄存器的值,SAHF修改符号寄存器的值,只在相应的运算之后再去检查符号寄存器的值才是有意义的,而一般来说检查他的值不需要用LAHF之类的指令,符号位用JMP中的JL,JG,JA,JB, 0标志位用JZ,JE来检测就可以了,在期末考试以前一直都没有发现这个方法,也不会用.
  Rev 1.0  Creat Document  oct 1 2006
  Rev 1.1  Add Content Feb 2, 2007