【发布时间】:2023-12-25 11:06:01
【问题描述】:
这是将 2 和 3 相乘的代码的一部分:
section .text
global _start
_start:
mov al,'3'
sub al, '0'
mov bl, '2'
sub bl, '0'
mul bl
add al, '0'
;first question ->
mov [res], al
mov ecx,msg
mov edx, len
mov ebx,1 ;file descriptor (stdout)
mov eax,4 ;system call number (sys_write)
int 0x80
;second question ->
mov ecx,res
mov edx, 1
mov ebx,1 ;file descriptor (stdout)
mov eax,4 ;system call number (sys_write)
int 0x80
mov eax,1 ;system call number (sys_exit)
int 0x80
section .data
msg db "The result is:", 0xA,0xD
len equ $- msg
segment .bss
res resb 1
在上面的代码中:
- 为什么要使用
mov [res], al而不使用mov res, al? - 为什么要使用
mov ecx,res而不使用mov ecx,[res]?
****更新
我知道一个是地址,另一个是值,但我不知道为什么......
【问题讨论】:
-
一个取地址,另一个值存储在该地址中
-
tnx 我的朋友。我知道但我不知道为什么?