加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于汇编的指令长度

(2011-04-30 01:06:40)
标签:

it

分类: 汇编

汇编指令长度与寻址方式有关,规律或原则如下:

一、没有操作数的指令,指令长度为1个字节

二、操作数只涉及寄存器的的指令,指令长度为2个字节

    如:mov bx,ax

三、操作数涉及内存地址的指令,指令长度为3个字节

    如:mov ax,ds:[bx+si+idata]

四、操作数涉及立即数的指令,指令长度为:寄存器类型+1

    8位寄存器,寄存器类型=1,如:mov al,8;指令长度为2个字节

    16位寄存器,寄存器类型=2,如:mov ax,8;指令长度为3个字节

五、跳转指令,分为2种情况:

1、段内跳转(指令长度为2个字节或3个字节)

jmp指令本身占1个字节

段内短转移,8位位移量占一个字节,加上jmp指令一个字节,整条指令占2个字节

如:jmp short opr

段内近转移,16位位移量占两个字节,加上jmp指令一个字节,整条指令占3个字节

如:jmp near ptr opr

2、段间跳转,指令长度为5个字节

如:jmp dword ptr table[bx][di]

  jmp far ptr opr

  jmp dword ptr opr 

注意:形如“jmp 1234:5678”的汇编指令,是在Debug中使用的汇编指令,汇编编译器并不认识,如果在源程序中使用,那么在编译时便会报错。

0

阅读 收藏 喜欢 打印举报/Report
前一篇:大小写转换
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有