“ mov eax,num”和“ mov eax,num”之间的区别

我是一个初学者,正在编写汇编程序以使用以下代码打印从1到9的数字:

section .text    
   global _start                    
_start:                     
   mov ecx,10    
   mov eax, '1'     
l1:    
   mov [num], eax    
   mov eax, 4    
   mov ebx, 1    
   push ecx     
   mov ecx, num            
   mov edx, 1            
   int 0x80     
   mov eax, [num]    
   sub eax, '0'    
   inc eax    
   add eax, '0'    
   pop ecx    
   loop l1      
   mov eax,1             ;system call number (sys_exit)    
   int 0x80              ;call kernel    
section .bss    
num resb 1

在这里,我们有以下三个语句:

  1. mov [num],eax
  2. mov ecx,是否
  3. mov eax,[数字]

我想知道为什么我们应该使用mov ecx,num而不是mov ecx,[num]

这是怎么回事

如果您熟悉C / C ++,请按以下说明进行操作。

mov ecx, num 等效于:

int num;
ecx = & num;

mov ecx, [num]等于:

int num;
ecx = num;

在这里,该行的原因mov ecx, num是因为您正在调用system函数int 0x80,该函数要求ecx包含数字的地址。所以应该是这样。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

直接推送常量或Mov Eax和Push Eax

来自分类Dev

为什么不能做 mov [eax], [ebx]

来自分类Dev

mov eax,dword ptr [eax]有什么作用?

来自分类Dev

相当于mov eax的AsmJit,[ecx + 0CC]

来自分类Dev

操作`mov [esp-4],eax`添加附加字节

来自分类Dev

可以花一些假的mov eax,esi吗?

来自分类Dev

LEA和MOV指令比较

来自分类Dev

LEA和MOV指令比较

来自分类Dev

如何为mov eax,moffs32生成A1操作码

来自分类Dev

mov dword ptr [rsp],eax ss:00000000`0011ddc0 = 00000060是什么意思?

来自分类Dev

Shell脚本查找JPG和MOV文件

来自分类Dev

LOCK XCHG和MOV + MFENCE在逻辑和性能上有什么区别?

来自分类Dev

MOV和LEA在检索地址方面有什么区别

来自分类Dev

汇编“ mov”指令

来自分类Dev

组装MOV指令

来自分类Dev

减少MOV文件大小

来自分类Dev

组装MOV指令

来自分类Dev

组装-mov的单位变量?

来自分类Dev

从.mov文件创建`CMSampleBufferRef`

来自分类Dev

汇编 mov 指令输出

来自分类Dev

x64和SSE中mov宽度的语义

来自分类Dev

PIN:识别MOV和间接内存操作数

来自分类Dev

x86 mov /添加指令和内存寻址

来自分类Dev

Swift-从mov和jpg文件创建实时照片

来自分类Dev

为什么要使用push / pop而不是sub和mov?

来自分类Dev

`move byte ptr`、`move word ptr` mov var+1、mov [var]+1 有什么区别?

来自分类Dev

++ num和num ++之间的区别

来自分类Dev

MOV vs MOV.B汇编语言说明

来自分类Dev

获取MOV视频的元数据