预备知识:
标志寄存器各位有具体的含义;
ZF:0标志位,计算结果是否为0
PF:奇偶标志位,二进制1的个数是否为偶数
SF:符号标志位,是否为负数
CF:进位标志位(无符号)
OF: 溢出标志(有符号)
adc指令:带进位加法指令
sbb指令:带借位减法指令
cmp指令:比较
比较结果的条件转移指令
pushf,popf:将标志寄存器中的值压栈(到栈中),弹出(将栈中的数据送入标志寄存器),为直接访问标志寄存器提供了一种方法;
字符串大小写转换:
Source Code:
assume cs:codesg datasg segment db "Beginner's All-purpose Symbolic Instruction Code.",0 datasg ends codesg segment begin: mov ax,datasg mov ds,ax mov si,0 call letterc mov ax,4c00H int 21H letterc: push cx pushf mov cx,0 s: mov cl,ds:[si] jcxz ok cmp cl,7aH ja nextgo and cl,0dfh mov ds:[si],cl nextgo: inc si jmp short s ok: popf pop cx ret codesg ends end begin