本章知识很琐碎,原则是用哪查哪,无需记忆。
设置标志寄存器的意义在于:
(1)用来存储相关指令的某些执行结果;
(2)用来为CPU执行相关指令提供行为依据;
(3)用来控制CPU的相关工作方式。
好了知道这三点就可以开始试验11了。
代码如下:
assume cs:codesgdatasg segmentdb "Beginner's All-purpose Symbolic Instruction Code.", 0
datasg endscodesg segment
start: mov ax, datasgmov ds, axmov si, 0call lettercmov ax, 4c00hint 21h;letterc-------------------------
letterc:push axpush bxpush cxpush dxletterc_ok:xor cx, cxmov cl, ds:[si]jcxz letterc_retcmp cx, 'a'jb nextand byte ptr ds:[si], 11011111b
next: inc sijmp letterc_okletterc_ret:pop dxpop cxpop bxpop axretcodesg ends
end start
实验结果:
总结几种常用的模式:
cmp ax, bx
je, jne, jb, jnb, ja, jna:如果等于,不等于,小于,不小于,大于,不大于则转移
cx
jcxz;如果cx==0则转移,否则不转。