簡體   English   中英

計算數組中數字之間的差異(Assembly,Irvine)

[英]Calculating different between numbers in array(Assembly, Irvine)

我正在嘗試計算數字之間的差距。 為此,我使用了 2 個數組。 所以除了輸出和數字后面出現的奇怪符號外,一切正常。

此時數組中的第一個數字,元素之間的第 2 個不同,第 3-2 個已經移動到第二個數組。 輸出:1 2 2 /3 44/722/9one/
2

這個符號從哪里來? 是什么原因造成的? 注冊錯誤? 為什么在第一個循環中 'gap'(array) 有正確的數字,但是當我稍后通過這個數組時它只有 2 和有線符號?

INCLUDE Irvine32.inc

.data
array byte 1,3,7,9
gap byte ?
blank byte ' '
ph byte "Done",0

.code
main PROC
        mov eax,0
        mov ecx,lengthof array  
        mov esi, offset array
        mov edi,offset gap
         arr:

         mov al,[esi]
         call writedec; here

         .if ecx==1
         mov edx,offset ph 
         call writestring
         .else
         mov al,blank
         call writechar

            mov al,[esi+1]
            sub al,[esi]

            call writedec; here

            mov [edi],al

            ;check block
            mov al,blank
            call writechar
            mov al,[edi] ; here
            call writedec
            mov al,blank
            call writechar

             inc esi
             inc edi        
           .endif

           mov al,'/'
         call writechar

         loop arr

        call crlf  

         mov eax,0
         mov ecx,lengthof gap
         mov esi,offset gap

         go:

         mov al,[esi]
         call writedec
         mov al,blank
         call writechar
         inc esi
         loop go

         exit

main ENDP



myexit proc

              call waitmsg
              ret
      myexit endp

end main

謝謝!

知道了! 變量間隙初始化錯誤。

這是正確的初始化gap byte lengthof array-1 dup(?)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM