社区
汇编语言
帖子详情
●●●请问如何判断汇编指令的长度和运行时间?●●●
crossbow
2004-08-03 08:16:22
mov eax, 00000000h ;5 bytes
xor eax, eax ;2 bytes
cmp eax, 00000000h ;5 bytes
je _label_ ;2/6 bytes (short/near)
不知道这些对指令长度的判断是从何而来的,又如何判断运行的时钟周期?
本人菜鸟一个,期盼老大们不吝赐教。谢谢!
...全文
1497
17
打赏
收藏
●●●请问如何判断汇编指令的长度和运行时间?●●●
mov eax, 00000000h ;5 bytes xor eax, eax ;2 bytes cmp eax, 00000000h ;5 bytes je _label_ ;2/6 bytes (short/near) 不知道这些对指令长度的判断是从何而来的,又如何判断运行的时钟周期? 本人菜鸟一个,期盼老大们不吝赐教。谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kwing
2004-08-08
打赏
举报
回复
实际上现在CPU的执行情况已经很复杂了,
现代CPU的流水线技术使得某些不相关指令可以并行或乱序执行,
所以不好确定某条指令使用多少时钟周期.
bsnhk
2004-08-07
打赏
举报
回复
指令的长度就是指机器码的长度,如果没有操作数的话,指令的长度是固定的,否则,指令的长度就受到寻址方式、指令的运算长度(如字节或字运算)、立即数是字节还是字等因素的影响。
在存储器寻址方式中,编译器对指令中的偏移量跟位移量是做不同处理的,位移量根据其大小给以分配字节或字空间来存放,而偏移量固定分配字空间来存放。
有时操作码的长度也会受操作数的实际寻址方式的影响,因为操作码长度不一定是字节的倍数。
我认为深入研究指令机器码的格式是深刻理解寻址方式及其所涉及概念的一个很好的办法。如果只是看看书本上关于寻址方式的介绍,有时很难去体会到或猜到某些概念的具体含义。
firstrose
2004-08-07
打赏
举报
回复
时钟周期是硬件决定的,可以查表。纯软件的方法不准确。注意,我说的是纯软件计算!
programfanny
2004-08-05
打赏
举报
回复
对,INTEL
NullUser
2004-08-04
打赏
举报
回复
看intel指令手册
rdtsc是取程序运行时间的,单位好像是时间周期。高位在edx,低位在eax。执行两次,比较eax的值就知道了
FlyindanceDDr
2004-08-03
打赏
举报
回复
楼上的,1个时钟周期是计算机中计时的最小单位,1毫秒可以执行n条指令的说
SDFDSAC
2004-08-03
打赏
举报
回复
v里面好像有个计算时间的函数,可以精确到毫秒级,忘了
crossbow
2004-08-03
打赏
举报
回复
感谢!
SDFDSAC
2004-08-03
打赏
举报
回复
指令长度可以根据程序的起始地址和结束地址算出来
时间好像只有查表,一个一个的加起来
kugou123
2004-08-03
打赏
举报
回复
楼主,一般像mov,lea,cmp这些指令,在书上都有一个表,会给出这类指令执行的时间的。
参考《IBM PC汇编语言程序设计》清华出版的,上面就有。
Areslee
2004-08-03
打赏
举报
回复
什么叫比较准?
人家做的CPU,当然是人家的资料最好了
allkill
2004-08-03
打赏
举报
回复
确实INTEL的手册上的比较准。
《IBM PC汇编语言程序设计》上的有些新的指令可能查不到.
Areslee
2004-08-03
打赏
举报
回复
到INTEL去下CPU手册
crossbow
2004-08-03
打赏
举报
回复
哪位有关于指令时钟周期详细的表格?谢谢.
crossbow
2004-08-03
打赏
举报
回复
同意楼上的观点,1秒中有n G次的周期
FlyindanceDDr
2004-08-03
打赏
举报
回复
一般来说,移位,加法,取反这种指令只需要一个时钟周期,而乘法,除法等指令需要几个乃至几十个时钟周期执行,1个时钟周期远远小于1微秒,楼主的代码执行时间是不能用毫秒描述的
SDFDSAC
2004-08-03
打赏
举报
回复
?
ARM体系结构与
汇编指令
-1.2.ARM裸机第二部分视频课程
本期课程让大家进一步学到ARM的关键知识:启动方式、内存映射、指令集、寄存器接口等。目标是为下阶段开始使用开发板,自己写ARM裸机程序打好基础。
汇编指令
速查表(X86平台)
有时我们需要查看汇编代码去分析软件问题,汇编代码才能最直观地反映出软件的问题。为了方便大家理解并记忆
汇编指令
,读懂汇编代码的上下文,此处列出常用
汇编指令
的使用说明,以供参考。...
ARM常见
汇编指令
总结
ARM常见
汇编指令
汇编指令
push,mov,call,pop,leave,ret建立与释放栈的过程
感觉这东西有点烧脑,花了一下午时间终于整个捋顺了整个流程。 想理解好此过程,理解每个指令的作用,必须结合指令行地址,栈地址和寄存器一起来分析,否则很容易被绕晕。 大图图片说明:内存地址,
汇编指令
都为简写,用的十进制,栈空间1个格子大小是4*8=32位(对应32位操作系统),指令行
长度
应为1-6字节,都简化为1字节。为了简化
汇编指令
行,函数都没有参数。实际执行顺序一列中,左边为寄存器或栈空间地址,
51单片机的
汇编指令
(操作码)系统
AT89C51汇编语言指令系统有42种助记符和111种指令,按指令
长度
可分单字节指令、双字节和三字节指令,按执行时间可分为单机器周期指令(64种)、双机器周期指令(45种)和四周期指令(只有乘、除法指令两种)。 汇编语言的指令格式一般为: [标号:] 操作码 [操作数1][,操作数2][,操作数3][;注释] 标号:用符号表示该条指令的首地址,以字母开头,以冒号结束,根据需要设置。 操作码:是由助记符表示的字符串,以规定指令实现何种功能,是...
汇编语言
21,458
社区成员
41,601
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章