如何使用 LODSB 指令將每個第二個數字加載到寄存器中

verong11

我有一個代碼,可以從numbers表中找到 10 個數字的總和如何找到所有其他數字的正確總和?您是否需要以某種方式lodsbeax每個第二個數字加載到 EAX 中?或者你還需要對add指令做些什麼?

    cld

    mov esi, OFFSET numbers ; in `numbers` i have 10 numbers
    mov edi, esi
    
    mov ecx, 10
    myLoop:
    push ecx
        lodsb ; here i add each digit in turn to the `eax` register
        add sum, eax ; here i summarize the numbers
    pop ecx
    loop myLoop
    
    mov eax, sum
九月羅蘭

我有一個代碼,可以從numbers表中找到 10 個數字的總和

字節數組

假設您的代碼對這 10 個數字求和是正確的,唯一缺少的就是EAX事先寄存器清零這不是LODSB要做的事情!

  mov  esi, OFFSET numbers
  mov  ecx, 10
  xor  eax, eax
myLoop:
  lodsb
  add  sum, eax
  loop myLoop
  mov  eax, sum

每隔一個字節求和

  mov  esi, OFFSET numbers
  mov  ecx, 10 / 2 ; Half
  xor  eax, eax
myLoop:
  inc  esi         ; Skip (or use an extra LODSB here)
  lodsb
  add  sum, eax
  dec  ecx
  jnz  myLoop
  mov  eax, sum

雙字數組

LODSB指令不加載整數。使用LODSD.

  mov  esi, OFFSET numbers
  mov  ecx, 10
myLoop:
  lodsd
  add  sum, eax
  loop myLoop
  mov  eax, sum

每隔一個dword求和

  mov  esi, OFFSET numbers
  mov  ecx, 10 / 2 ; Half
myLoop:
  add  esi, 4      ; Skip (or use an extra LODSD here)
  lodsd
  add  sum, eax
  dec  ecx
  jnz  myLoop
  mov  eax, sum

類似於@Jester 的建議。

  mov  ecx, (10 / 2) - 1
myLoop:
  add  eax, [numbers + ecx * 8 + 4]
  dec  ecx
  jns  myLoop

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

lodsb指令导致堆栈溢出

如何將一個數組的元素插入到第二個數組中?

如何將重載中的第二個參數傳遞給 std::visit?

如何掃描用戶輸入中的每個字符並將其與他們輸入的第二個整數進行比較?

如何將多個 csv 文件加載到 Python 中的可迭代變量?

如何取一個整數並將其前面的每個數字放入數組中?

SwiftUI TabView 如何在第二個選項卡單擊時加載更多數據

如何清除在計算器中輸入的顯示屏上的第一個數字,以便第二個數字不會連接到第一個數字?

在我的第一個場景加載後,如何在我的第二個場景中使用 getUserData()?

如何使用python將數據加載到redshift表中?

如何比較兩個列表並從第二個列表中刪除匹配的數字?

如何將每個數組元素插入另一個數組中的每個其他元素?

如何找出逆向工程汇编中的第二个参数/寄存器?

如何將兩個數字相加?

如何在 api 中的每個請求上顯示加載圖標

將兩個列表相乘,但將第一個列表中的每個數字乘以 Python 中第二個列表中的所有數字

golang中如何使用泛型將兩個函數合二為一

如何以正確的方式在 C# 中將數組加載到 datagridview 中?

如何在第一個中為每個數字合併兩個 numpy 數組?

如何在每個數字中選擇一個單選按鈕?

如何使用 jquery 將表 td 列中的文本/數字複製到另一個 td 列中的輸入值?

如何將節點添加到倒數第二個位置?

如何將txt文件加載到二維矩陣中?

如何將數據加載器發送到 Google Colab 中的 GPU?

如何減少二維_Generic 中第二個參數的擴展次數?

如何將每個記錄值合併到最終數據幀

給定一個列表,如何映射該列表中每個元素的第二個值?

如何使用java從android studio中的每個二維數組數據中獲取第一個參數

如何將多個 Excel 文件中的二維數組組合成單個二維數組?