社区
汇编语言
帖子详情
本人刚学汇编,问个基础的问题
lotusword
2009-10-28 08:32:15
cpu执行的下一条指令的物理地址是CS*16+IP,那么cpu是怎么知道指令的长度(有的是2字节,有的是3字节)呢?
...全文
62
5
打赏
收藏
本人刚学汇编,问个基础的问题
cpu执行的下一条指令的物理地址是CS*16+IP,那么cpu是怎么知道指令的长度(有的是2字节,有的是3字节)呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
maning_0
2009-10-28
打赏
举报
回复
[Quote=引用 1 楼 lotusword 的回复:]
例如:mov ax,0123H在内存中占3个字节。
mov ax,bx在内存中占2个字节,cpu是怎么知道是2个字节还是3个字节
[/Quote]
MOV AX,××××,与MOV AX,BX 根本就是两个不同的机器码。。
虽然都是MOV指令。
MOV AX,××××
是移动立即数的机器码
MOV AX,BX
是移动寄存器数据的机器码。根本就是不同的。。长度当然不同。。
第一个机器码 根据机器码得出是传送立即数,所以后面的16位立即数占用两个字节。
而寄存器传送指令,由于寄存器是有限的,所以只需1个字节就可以表示,所以是两个字节。。。
maning_0
2009-10-28
打赏
举报
回复
每条指令的编码都是不一样的,根据编码,CPU当然知道每条指令的长度。。
比如
MOV al,×× 和 MOV EAX,××××××××
这两个指令虽然都是MOV指令,但是其机器码其实是不同的,也就是说MOV AL 是一条机器码指令,而MOV EAX实际上又是另一条机器码指令。。
虽然在写汇编时都是MOV指令。。。
CPU在分析了开头的不同的MOV机器码之后,就知道了后面要移动的数据的长度,自然就知道了指令的实际长度。。
lotusword
2009-10-28
打赏
举报
回复
我不是说怎么判断一个字节的长度,而是说怎么判断一条指令是几个字节?
alZou
2009-10-28
打赏
举报
回复
cpu是根据机器码来判断字节长度的
lotusword
2009-10-28
打赏
举报
回复
例如:mov ax,0123H在内存中占3个字节。
mov ax,bx在内存中占2个字节,cpu是怎么知道是2个字节还是3个字节
学完
汇编
语言学完c语言,大家觉得有C语言
基础
,应该多长时间学完
汇编
语言?请有过经历的说,或说你学习
汇编
语言用了多长时间吧...
解决方案2当刚开始学
汇编
是课上学的,学了半年吧,本人学的话,看你的学习能力吧,智商没
问题
且够努力的话,一个月应该差不多能理解了5提醒:“学习用
汇编
语言写程序”和“VC调试(TC或BC用TD调试)时按Alt+8、Alt+7、...
学习
汇编
踩过的坑及优秀
汇编
教材推荐
于是乎,这门课程草草结束,也没有几个学懂,即使有几个同学有心学习,也是苦于晦涩难懂的教材,无从下手。于是与之相关的计算机系统结构,编译原理,操作系统等等一众计算机核心
基础
课,甚至连C语言,C++语言也没法...
菜鸟学
汇编
001 计算机硬件
基础
本人使用的教材是:
汇编
语言(第二版) 王爽。 虽然本系列笔记非常的简单,菜鸟级别的。 但是还是有几点要声明: 1. 本人写的纯属读书学习的笔记。 2. 不得将本系列笔记用于商业...
汇编
学习(一)
基础
扫描
最近一直在看CSAPP这本书,看到第三章程序的机器级表示,翻了几页表示压力很大,没有学过
汇编
,硬着头皮看有点吃力,刚好手头买了一本王爽的《
汇编
语言》,也打算系统的学习下
汇编
,因此暂停下CSAPP的阅读计划,先...
汇编
学习
所以我个人看法学
汇编
,不一定要写程序,写程序确实不是
汇编
的强项,大家不妨玩玩DEBUG,有时CRACK出一个小软件比完成一个程序更有成就感(就像学电脑先玩游戏一样)。某些高深的指令事实上只对有经验的
汇编
程序员...
汇编语言
21,459
社区成员
41,601
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章