如果你想写系统软件,两本入门书籍 — 谭浩强的《C 语言程序设计》和王爽的《汇编语言》是必看的 。谭老的 C 语言已相当成熟,王老师的汇编倒有个小缺陷—指令没有英文全称,或许他认为现在学编程的朋友都不记单词,如同新生代作家看不懂英文原著一般 。不过我觉得记住指令的英文全称,就不容易搞混,印象会更深刻,所以我把王爽书中出现的英文缩写的全称罗列出来,以便入门的朋友更好地记住它们 。
8086CPU 提供以下几大类指令 。
一、数据传送指令
比如,mov(move)、push、pop、pushf(push flags)、popf(pop flags)、xchg(exchange)等都是数据传送指令,这些指令实现寄存器和内存、寄存器和寄存器之间的单个数据传送 。
二、算术运算指令
比如,add、sub(substract)、adc(add with carry)、sbb(substract with borrow)、inc(increase)、dec(decrease)、cmp(compare)、imul(integer multiplication)、idiv(integer divide)、aaa(ASCII add with adjust)等都是算术运算指令,这些指令实现寄存器和内存中的数据运算 。它们的执行结果影响标志寄存器的 sf、zf、of、cf、pf、af 位 。
三、逻辑指令
比如,and、or、not、xor(exclusive or)、test、shl(shift logic left)、shr(shift logic right)、sal(shift arithmetic left)、sar(shift arithmetic right)、rol(rotate left)、ror(rotate right)、rcl(rotate left through carry)、rcr(rotate right through carry)等都是逻辑指令 。除了 not 指令外,它们的执行结果都影响标志寄存器的相关标志位 。
本帖隐藏的内容 【汇编语言指令大全 汇编指令集】四、转移指令
可以修改 IP,或同时修改 CS 和 IP 的指令统称为转移指令 。转移指令分为以下几类 。
(1) 无条件转移指令,比如,jmp(jump);
(2) 条件转移指令,比如,jcxz(jump if CX is zero)、je(jump if equal)、jb(jump if below)、ja(jump if above)、jnb(jump if not below)、jna(jump if not above)等;
(3) 循环指令,比如,loop;
(4) 过程,比如,call、ret(return)、retf(return far);
(5) 中断,比如,int(interrupt)、iret(interrupt return) 。
五、处理机控制指令
这些指令对标志寄存器或其他处理机状态进行设置,比如,cld(clear direction)、std(set direction)、cli(clear interrupt)、sti(set interrupt)、nop(no operation)、clc(clear carry)、cmc(carry make change)、stc(set carry)、hlt(halt)、wait、esc(escape)、lock 等都是处理机控制指令 。
六、串处理指令
这些指令对内存中的批量数据进行处理,比如,movsb(move string byte)、movsw(move string word)、cmps(compare string)、scas(scan string)、lods(load string)、stos(store string)等 。若要使用这些指令方便地进行批量数据处理,则需要和 rep(repeat)、repe(repeat if equal)、repne(repeat if not equal)等前缀指令配合使用 。
推荐阅读
- 怎么起家具店店名 家具店名大全有哪些
- 拼多多cpt定义及玩法大全 拼多多的cpt是什么意思
- 西瓜的切法大全图解怎样切西瓜摆盘好看又简单
- 家长寄语简短50字 家长寄语大全简短的
- ppt应用快捷键技巧大全 ppt插入图片快捷键是什么
- 钱生钱的40个方法 理财方法大全
- 科普下化学实验仪器使用方法大全
- 小学形声字词组大全 二年级形声字有哪些并组词
- 排名第一的手机杀毒软件 免费下载杀毒软件大全
- 程序编程代码大全 c代码检查工具