布尔指令和比较指令 and指令:除了两个以逻辑与是1其余的都是0
将字符转换为大写:
01100001=61h('a')
01000001=41('A')
把任何一个字符与二进制数1101 1111进行and九科得到大写
or指令:除了两个零逻辑或是0其余的都是1
or al,al
下表给出了零标志位和符号标志位对al内容的说明:
零标志位 | 符号标志位 | AL中的值 |
---|---|---|
清零 | 清零 | 大于零 |
置一 | 清零 | 等于零 |
清零 | 置一 | 小于零 |
not指令:触发翻转操作数中的所有位。其结果成为反码。
test指令:将两个数进行and指令但是不改变目标数。
————————————————————————————————————————————————————————
CMP指令:指令执行从目的操作数中减去源操作数的隐含减法操作,并且不修改任何操作数。
无符号操作数之间的关系:
CMP结果 | ZF | CF |
---|---|---|
目的操作数<源操作数 | 0 | 1 |
目的操作数>源操作数 | 0 | 0 |
目的操作数=源操作数 | 1 | 0 |
CMP结果 | ZF CF |
---|---|
目的操作数<源操作数 | SF不等于OF |
目的操作数>源操作数 | SF=OF |
目的操作数=源操作数 | ZF=1 |
test al,0 ;零标志位置1
and al.0 ;零标志位置1
or al,1;零标志位置清零
or al,80h ;符号标志位置1
or al,7Fh ;符号标志位置清零
stc;进位标志位置1
clc;进位标志为清零mov al,7Fh;AL=+127
inc al;AL=80H(-128),OF=1
or eax,0 ;溢出标志位清零
条件跳转 各个标志位的名称:
CF 进位标志位
AF 辅助进位标志位
OF 溢出标志位
ZF 零标志位
SF 符号标志位
PF 奇偶标志位
基于特定标志位值的跳转:
助记符 | 说明 | 标志位/寄存器 |
---|---|---|
JZ | 为零跳转 | ZF=1 |
JNZ | 非零跳转 | ZF=0 |
JC | 进位跳转 | CF=1 |
JNC | 无进位跳转 | CF=0 |
JO | 溢出跳转 | OF=1 |
JNO | 无溢出跳转 | OF=0 |
JS | 有符号跳转 | SF=1 |
JNS | 无符号跳转 | SF=0 |
JP | 偶校验跳转 | PF=1 |
JNP | 奇校验跳转 | PF=0 |
助记符 | 说明 |
---|---|
JE | 相等跳转 |
JNE | 不相等跳转 |
JCXZ | CX=0跳转 |
JECXZ | ECX=0跳转 |
JRCXZ | RCX=0跳转 |
助记符 | 说明 |
---|---|
JA | 大于跳转 |
JNBE | 不小于或等于跳转 |
JAE | 大于或等于跳转 |
JNB | 不小于跳转 |
JB | 小于跳转 |
JNAE | 不大于或等于跳转 |
JBE | 小于或等于跳转 |
JNA | 不大于跳转 |
助记符 | 说明 |
---|---|
JG | 大于跳转 |
JNLE | 不小于或等于跳转 |
JGE | 大于或等跳转 |
JNL | 不小于跳转 |
JL | 小于跳转 |
JNGE | 不大于或等于跳转 |
JLE | 小于或等于跳转 |
JNG | 不大于跳转 |
LOOPE:相等跳转
LOOPNZ:非零跳转
LOOPNE:不相等跳转
条件结构 条件控制流伪指令 【汇编语言(3) 条件处理】如下表:
![汇编语言(3) 条件处理](https://img.it610.com/image/info8/a053fd575d38432d82ad6f7a9ede9cea.jpg)
文章图片
![汇编语言(3) 条件处理](https://img.it610.com/image/info8/d4cabb5e4498455eb5e6cd1382103c26.jpg)
文章图片
推荐阅读
- 汇编语言(4)整数运算
- 汇编语言(5)--高级过程
- ARM|GNU ARM中的汇编指令.word
- 本实验题目(将一个文件myprog.txt里面的内容中的小写字母全部转化为大写,其他字符保持不变,且不能使用临时文件。(对前面一道题目的改进版本))
- Link指向一个字线性表,其中的首单元保存线性表的长度,编制程序 ;将该线性表中内容为0FFFFH的项删除,并更新线性表长度 ;线性表长度是指线性表中实际
- Link指向一个字线性表,其中的首单元保存线性表的长度,编制程序将该线性表中内容为0FFFFH的项删除,并更新线性表长度
- 进制转化(从键盘接收一个4位的十进制数,将它转化为16进制并输出)
- 试编写一个程序,实现对N字节的NUM的值求补(类似NEG的操作),并把求反后的值仍保存在NUM中。求补即是取反后加1