鱼C论坛

 找回密码
 立即注册
查看: 3671|回复: 14

[汇编作业] CPU运行的流程分析。看不懂啊。

[复制链接]
发表于 2013-8-30 12:44:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
QQ图片20130830123640.jpg QQ图片20130830123647.jpg
大神帮我指点指点啊。  不懂啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-30 12:54:15 | 显示全部楼层
1把6622给ax
跳转到1000:3也就是10003执行mov ax,0000
然后ip自增 指向了 mov bx,ax  把ax的值给bx
然后jmp bx 就是jmp 1000:bx 也就是 1000:0 执行 mov ax,123h 把123h给ax
然后就又是 第三步mov ax,0000 之后都一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-30 13:11:52 | 显示全部楼层

他这个跳转到1000:3是怎么回事啊。  跳转是怎么回事。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-30 13:18:07 | 显示全部楼层
四六★不懂 发表于 2013-8-30 13:11
他这个跳转到1000:3是怎么回事啊。  跳转是怎么回事。

Jmp 一个地址 就是跳到这个地址去执行
jmp的用法甲鱼之后会讲的你先不急
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-30 13:25:36 | 显示全部楼层
牡丹花下死做鬼 发表于 2013-8-30 13:18
Jmp 一个地址 就是跳到这个地址去执行
jmp的用法甲鱼之后会讲的你先不急

还有他说什么执行什么执行的,是什么意思啊。 在这执行那个,在那执行那个的。怎么个执行法啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-30 13:35:08 | 显示全部楼层
jmp跳转其实是跳转位移量,1000:3就是 物理地址=段地址*16+偏移地址 其中的16是十进制的 相对于16进制的10 即1000*10(hex)+3(hex)=10003 hex表示16进制的意思!望采纳哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-30 14:06:12 | 显示全部楼层
这个我搞懂啦
慢慢给你讲啊,别急
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-30 14:13:20 | 显示全部楼层
因为初始地址为CS2000IP为0所以第一步是mov ax,6622对吧,你看看左边那里有3个框的机器码对吧,它就是说IP增加3会跑到20003的位置执行jmp1000:3,这个指令时让你跳转到CS1000IP位3也就是10003的位置去,就是mov ax,0000,这里吧ax值清空啦,并且左边有3个框IP自增3就跑到了10006的位置执行mov  bx,ax,它的意思是让bx也变成0,并且左边有2个框,Ip自动跳转到10008的位置执行jmp bx,由于bx为0,所以就跑到了10000的位置进行执行mov ax,0123

评分

参与人数 2荣誉 +10 鱼币 +15 贡献 +5 收起 理由
零度非安全 + 5 + 5 热爱鱼C^_^
怡静 + 5 + 10 + 5 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-30 15:15:58 | 显示全部楼层
这么多分啊,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-30 17:16:56 | 显示全部楼层
wanghu1207 发表于 2013-8-30 14:13
因为初始地址为CS2000IP为0所以第一步是mov ax,6622对吧,你看看左边那里有3个框的机器码对吧,它就是说IP ...

那个地址和对应的汇编指令有什么关系啊?他mov cx,ax 怎么就又到左边去了啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-30 17:36:03 | 显示全部楼层
本帖最后由 wanghu1207 于 2013-8-30 17:39 编辑

左边对应的是机器码?mov  cx,ax是汇编指令,左边那个是把汇编指令翻译成的机器码,也就是机器语言。电脑看不懂mov  cx,ax但是能看懂0和1,机器码就是和0和1对应的一种中间状态
例如:
mov  ax,6622对应的机器码就是B8 22 66
其中,可以把mov  ax理解为B8  6622是拆开成8位就是22和66没个IP里面能放两个数,那么就是调用这个指令用了3个IP地址。
下面还有用两个IP地址的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-30 18:09:31 | 显示全部楼层
wanghu1207 发表于 2013-8-30 17:36
左边对应的是机器码?mov  cx,ax是汇编指令,左边那个是把汇编指令翻译成的机器码,也就是机器语言。电脑看 ...

还有你看啊,那个mov ax,6622H   下面是jmp 1000:3   mov cx,ax这是怎么个关系啊?怎么就跳到1000那了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-14 07:12:46 | 显示全部楼层
很简单的,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-15 15:38:48 | 显示全部楼层
机器码里的D8 EA C1之类的字母是什么意思啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 15:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表