汇编指令在内存中是什么样子的
比如说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?的机器码?为什么是两个汇编指令却只有一个内存信息? 展开
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?的机器码?为什么是两个汇编指令却只有一个内存信息? 展开
2个回答
展开全部
嘿嘿 俺来帮你回答
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机器指令表示的二进制代码。
呵呵 满意 就选满意回答
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机器指令表示的二进制代码。
呵呵 满意 就选满意回答
展开全部
根据我的经验来看,当然不一定正确咯
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可以从程序开始一直反汇编
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可以从程序开始一直反汇编
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询