汇编指令在内存中是什么样子的

比如说assmecs:codecodesegmentstart:movax,offsetstarts:movax,offsetscodeendsendstartmovax... 比如说assme cs:code
code segment
start:mov ax,offset start
s:mov ax,offset s
code ends
end start
mov ax,0在内存中是B8 00 00。那么B8是MOV?还是AX?的机器码?为什么是两个汇编指令却只有一个内存信息?
展开
 我来答
胖大海君
2012-10-20 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1436
采纳率:11%
帮助的人:652万
展开全部
嘿嘿 俺来帮你回答
1 汇编指令由操作码和操作数组成 如:mov ax,0
mov为操作数 表示指令的功能(是传送指令)
ax,0是2个操作数 即0(0000H)为源操作数 ax为目的操作数
该指令就是 将源操作数传送给目的操作数 从ax可以看出是一条16位的传送指令
2 mov ax,0在内存中的机器指令是B8 00 00
B8 是操作码 表示是一条以ax为目的操作数的传送指令(操作数ax为寄存器寻址 隐含在操作码 中,00 00 表示的是一个16位的立即数即0000H 低8位在前 高8位在后。
3 汇编指令在内存中 就是以B8 00 00机器指令表示的二进制代码。

呵呵 满意 就选满意回答
失落血天使
2012-10-20 · TA获得超过226个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:188万
展开全部
根据我的经验来看,当然不一定正确咯

B8 是指的mov ax 后面的00 00 就是0
一般mov ax,bx 这种是占两个字节,就是mov 寄存器,寄存器
mov ax,0 这种是占三个字节 , 就是mov 寄存器,常数

因为你看到的是一种带格式的语言,所以你会想b8到底是指向mov还是ax,
但是其实在机器看来,他的理解是对0进行一种操作····,这种操作的代码是B8,所以说cpu不需要管你的命令是mov还是add,他只要知道操作的指令就行了,机器理解B8就是把一个数复制给ax寄存器

具体的你可以编译以后用u命令查看,一般来说是 u cs:0就行了,就是从你cs指向的代码段开始反汇编,因为cs最初是指向你的代码段,cpu是根据cs和ip查找指令的么,所以u cs:0可以从程序开始一直反汇编
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式