网站建站网站域名申请,nginx rewrite wordpress,seo案例,领手工在家做的网站2019目录 实践#xff1a;相加连续的数 数组是在内存中连续的一串变量。我这样说#xff0c;可能你已经想到的大致的定义了#xff1a;
NUMBERS DW 34, 45, 56, 67, 75, 89
现在我们就定义了一个Number数组#xff0c;里面存放的连续的六个数字#xff1a;34, 45, 56, …目录 实践相加连续的数 数组是在内存中连续的一串变量。我这样说可能你已经想到的大致的定义了
NUMBERS DW 34, 45, 56, 67, 75, 89
现在我们就定义了一个Number数组里面存放的连续的六个数字34, 45, 56, 67, 75, 89。回忆我们处理字符串的方式拿到第N个字符的位置是取出偏移地址量N - 1个元素大小
mov ax, [NUMBERS 2]
取出了第三个元素56来。就是这个意思。
当然有人可能希望写出
int all_zero[8] {0}; // 全部为0
的等效代码可以定义
all_zero DW 0DW 0DW 0DW 0DW 0DW 0DW 0DW 0
太麻烦了其实这样
all_zero DW 0, 0 , 0 , 0 , 0 , 0 , 0 , 0
或者使用TIMES指令
all_zero TIMES 8 DW 0
是比较常见的定义数组的方式。
实践相加连续的数 内存中设定连续的数字123对他们做相加而且打印出来 charliechenCharliechen:~/demo/demo12$ ./result
6 效果如上即可不需要提示 ; --------------------------------------------------
; Program written in 10.20 2024
; Author: Charlie chen
; Functionality: Add Continious number
; --------------------------------------------------
section .dataSOURCE db 1, 2, 3SUM db 0
section .textglobal _start
_start:xor eax, eaxmov ecx, 3
do_add:add eax, [SOURCE ecx - 1]loop do_add ; loop promised the auto decline of cxor al, 0x30mov [SUM], almov edx, 1mov ecx, SUMmov ebx, 1mov eax, 4int 0x80
mov ebx, 0mov eax, 1int 0x80