鱼C论坛

 找回密码
 立即注册
查看: 2073|回复: 3

将汇编写的程序载入OD,在16进制窗口显示66:是啥意思哈?

[复制链接]
发表于 2013-1-10 21:34:31 | 显示全部楼层 |阅读模式
8鱼币

                               
登录/注册后可看大图

第一个问题:

将汇编写的程序载入OD,在16进制窗口显示66:是啥意思哈?
如下:
00469805    66:B8 2301      MOV AX,123
00469809    66:BB 5604      MOV BX,456
0046980D    66:03C3         ADD AX,BX
00469810    66:03C0         ADD AX,AX
00469813    66:B8 004C      MOV AX,4C00
00469817    CD 21           INT 21

实际上这几句汇编指令对应的二进制代码就是: B8 23 01 B8 56 04 03 C3 03 C0 B8 00 4C CD 21

为什么载入OD的时候会在前面加上66:呢?这代表啥意思呢?谢谢童鞋们


第二个问题:
(ax)的意思我有点搞混了,他代表的是寄存器ax中的数值?还是代表 “把ax中数值作为物理地址或者偏移地址”而找到的内存中内容呢??

非常感谢撒

最佳答案

查看完整内容

od显示66那个,我不管载入16位还是32都没看见,翻了老久,估计版本不同吧,我查看了od官方文档,发现在hex jump中只会显示跳转分析和机器码,跳转分析给出的是符号,没有数字,address栏资料上也表示只会显示虚拟地址,估计66没什么太大影响,你大可不必纠结@_@ (ax)的问题,我想你要表达的是[ax]吧, 就是吧ax中的值作为地址,然后找ax中的地址中存放的值(32位程序是作为虚拟地址,16位的在8086概念中我忘了是什么地址,不过 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-1-10 21:34:32 | 显示全部楼层
od显示66那个,我不管载入16位还是32都没看见,翻了老久,估计版本不同吧,我查看了od官方文档,发现在hex jump中只会显示跳转分析和机器码,跳转分析给出的是符号,没有数字,address栏资料上也表示只会显示虚拟地址,估计66没什么太大影响,你大可不必纠结@_@
(ax)的问题,我想你要表达的是[ax]吧,
就是吧ax中的值作为地址,然后找ax中的地址中存放的值(32位程序是作为虚拟地址,16位的在8086概念中我忘了是什么地址,不过在debug实质是虚拟地址,毕竟是windows模拟的)
举个例子
有个地址f100h
在f100h这个地址下存放两个字节的值1234h
我们mov ax,f100h

这时ax=f100h
这时mov bx,[ax]
bx=1234h而不是f100h


教你个实验技巧,比如这个再忘了
那个od随便载入一个程序,然后按空格把你需要理解的指令输进去,f8或者f4跑一下,看一下寄存器和数据窗口的值就明白了
希望对你有帮助^_^||

评分

参与人数 1鱼币 +2 收起 理由
s0512 + 2 热爱鱼C^_^

查看全部评分

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

使用道具 举报

 楼主| 发表于 2013-1-11 22:55:05 | 显示全部楼层
メ㊣逆ご帅☆ 发表于 2013-1-10 21:34
od显示66那个,我不管载入16位还是32都没看见,翻了老久,估计版本不同吧,我查看了od官方文档,发现在hex  ...

哥哥,谢谢啦哈,祝你天天开心

评分

参与人数 1鱼币 +2 收起 理由
メ㊣逆ご帅☆ + 2

查看全部评分

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

使用道具 举报

发表于 2013-2-1 08:27:16 | 显示全部楼层
メ㊣逆ご帅☆  是个好人
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-7 22:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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