汇编网首页登录博客注册
wangping198611的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  在没有结果之前,千万不要放弃努力,因为结果未知,努力过了,即使失败了也不后悔,否则中途放弃只能是无尽的悔恨。
  • 『姓名』:王平
  • 『性别』:男『发送消息
  • 个人说明:一个人的失败是正常的,一个人的成功有2分努力,3分人脉加上5分运气和机遇,这里的2分努力是全力以赴,如果自我放弃随波如流,成功看起来离你很近,但是就是差那么0.1分,所以一定要全力以赴
  • 详细信息『加为好友』
学习动态
友情链接

[2009-03-27 14:07] 推荐博文 汇编指令的英文全称(转载)

汇编指令的英文全称

        如果你想写系统软件,两本入门书籍--谭浩强的《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)等前缀指令配合使用。 


附:8086CPU寄存器英文全称 

1、通用寄存器 
AX(accumulator)、BX(base)、CX(count)、DX(data)这些寄存器可以字(16位)或字节(8位)单位形式访问; 
SP(stack pointer)、BP(base pointer)、SI(source index)、DI(destination index),这些寄存器只能以字(16位)单位形式访问。 

2、专用寄存器 
IP(instruction pointer)、SP(stack pointer);; 
FLAGS又称PSW(program status word)分为: 
①    条件码 
OF(overflow)、SF(sign)、ZF(zero)、CF(carry)、AF(auxiliary)、PF(parity) 
②    控制标志 
DF(direction) 
③    系统标志位 
TF(trap)、IF(interrupt)、IOPL(I/O privilege level) 

3、段寄存器 
CS(code)、DS(data)、SS(stack)、ES(extra)
评论次数(9)  |  浏览次数(3272)  |  类型(转载和记录的汇编知识) |  收藏此文  | 

[  crazyman   发表于  2009-03-27 14:48  ]

嗯,确实有助于记住各个指令!
收藏了。

[  游客   发表于  2009-03-31 13:06  ]

正想要这个呢,收藏了,谢谢。

[  xcdmqjh   发表于  2009-04-02 15:47  ]

这些东西啊应该是要在没有看书之前就知道的了

[  loswer   发表于  2009-04-11 18:34  ]

建议不要看谭浩强的《C语言程序设计》的书,太垃圾了。语言结构不严谨,代码格式乱七八糟
还是看由C语言的设计者Brian W. Kernighan和Dennis M. Ritchie编写的《The C Programming Language》
想学编程就不要怕看英文

[  lanchong317   发表于  2009-04-25 13:25  ]

我粘贴了

[  findufo   发表于  2009-04-25 15:39  ]

收藏了

[  游客   发表于  2010-04-21 16:09  ]

收藏了

[  1035802659   发表于  2010-05-05 14:14  ]

谢了

[  fpamc   发表于  2012-02-28 14:20  ]

不做伸手党

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码