Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 汇编语言(订单接受者)_Arrays_Assembly_Storage_Inventory - Fatal编程技术网

Arrays 汇编语言(订单接受者)

Arrays 汇编语言(订单接受者),arrays,assembly,storage,inventory,Arrays,Assembly,Storage,Inventory,我正在努力学习汇编语言 我真的需要帮助在一个数组中存储不同的10个项目 我想建立一个程序,将接受来自10个选项的项目,并将其存储 这10项具有不同的价值 范例 项目1=10$ 项目2=4$ 因此,当用户尝试选择Item1和Item2时,它将显示 两项的总和 如果有人能分享他/她自己的代码,可以存储10个项目和所有项目的总和,我会很高兴。谢谢 这是我的密码: _start: mov eax,3 ;number bytes to be summed mov ebx,0

我正在努力学习汇编语言

我真的需要帮助在一个数组中存储不同的10个项目

我想建立一个程序,将接受来自10个选项的项目,并将其存储

这10项具有不同的价值

范例 项目1=10$ 项目2=4$

因此,当用户尝试选择Item1和Item2时,它将显示 两项的总和

如果有人能分享他/她自己的代码,可以存储10个项目和所有项目的总和,我会很高兴。谢谢

这是我的密码:

_start: 

   mov  eax,3      ;number bytes to be summed 
   mov  ebx,0      ;EBX will store the sum
   mov  ecx, x     ;ECX will point to the current element to be summed

top:  add  ebx, [ecx]

   add  ecx,1      ;move pointer to next element
   dec  eax        ;decrement counter
   jnz  top        ;if counter not 0, then loop again

done: 

   add   ebx, '0'
   mov  [sum], ebx ;done, store result in "sum"

display:

   mov  edx,1      ;message length
   mov  ecx, sum   ;message to write
   mov  ebx, 1     ;file descriptor (stdout)
   mov  eax, 4     ;system call number (sys_write)
   int  0x80       ;call kernel

   mov  eax, 1     ;system call number (sys_exit)
   int  0x80       ;call kernel

section .data
global x
x:    
   db  2
   db  4
   db  3

sum: 
   db  0
我这里的代码确实有问题

由于您已将所有变量定义为字节类型,因此必须将它们作为字节处理!您正在程序中读写dwords

这本来是可以的:

top:  add  bl, [ecx]
      add  ecx, 1     ;move pointer to next element
      dec  eax        ;decrement counter
      jnz  top        ;if counter not 0, then loop again
done: 
      add  bl, '0'
      mov  [sum], bl  ;done, store result in "sum"
“我的代码确实有问题。”问题是。。。?
top:  add  bl, [ecx]
      add  ecx, 1     ;move pointer to next element
      dec  eax        ;decrement counter
      jnz  top        ;if counter not 0, then loop again
done: 
      add  bl, '0'
      mov  [sum], bl  ;done, store result in "sum"