这两个 *** 作一般是用来判断SF,也就是符号位是正还是负。
AND HE OR就是与和或运算。进行的是逻辑运算,当数值不同改变的寄存器也就不同。
按顺序总共有9个标识位(16位CPU)
OF DF IF TF SF ZF AF PF CF
3个状态控制标示为 DF IF TF
6个运算标志位 OF SF ZF AF PF CF
AND指令影响标志位PF、SF、ZF,使CF=0、OF=0
扩展资料:
汇编语言用一些容易理解和记忆的字母,单词来代替一个特定的指令,比如:用“ADD”代表数字逻辑上的加减,“ MOV”代表数据传递等等,通过这种方法,很容易去阅读已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便。当计算机的硬件不认识字母符号,这时候就需要一个专门的程序把这些字符变成计算机能够识别的二进制数。
对于广泛使用的个人计算机来说,可以自由选择的汇编语言编译器有MASM、NASM、TASM、GAS、FASM、RADASM等,但大都不具备调试功能。如果是为了学习汇编语言,轻松汇编因为拥有一个完善的集成环境,是一款非常适合初学者的汇编编译器。
参考资料来源:百度百科-汇编语言
先将十六进制转为二进制,这个你不应该不会吧
然后按以下规则进行运算
0 and 0 = 0
0 and 1 = 1
1 and 0 = 1
1 and 1 = 1
and 是按位与。
0feh=11111110
当端口是偶数时,末位为0,与后末位还是为0,而前面都不变。因为任何数与1与都是它自身,比如1和1与为1,0和1与为0
如果是奇数,末位为1,与0与后为0,也就是1变为0了,当然少1了。
如:
20 and 0feh,结果为20
35 and 0feh,结果为34
AND AX ,BX AND 0FDEAH
and *** 作符为and op1,op2
前一个and op1为ax op2 为 BX AND 0FDEAH
前一个and是汇编指令与指令 ,后一个and是逻辑与运算
执行这条指令时先是取 *** 作数 ,后执行指令
所以后一个and先算 ,前一个and最后执行
输入1后的结果为:123
输入2后的结果为3
老师说过,最好在每个case语句后加breakdefault只是在你没有匹配的条件下执行的语句但因为本题里,他没有break,所以全都顺序执行
你这道题中的case和1必须是分开的,否则结果就是23
以上就是关于汇编语言中and ax ax 还有or ax ax 具体作用是什么都改变了什么标志位求详解全部的内容,包括:汇编语言中and ax ax 还有or ax ax 具体作用是什么都改变了什么标志位求详解、汇编语言的指令用法——AND、汇编中 and 的使用问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)