Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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
Assembly 计算数组中数字之间的差异(部件,Irvine)_Assembly_Irvine32 - Fatal编程技术网

Assembly 计算数组中数字之间的差异(部件,Irvine)

Assembly 计算数组中数字之间的差异(部件,Irvine),assembly,irvine32,Assembly,Irvine32,我在计算这些数字之间的差距。为此,我使用了两个数组。因此,除了输出和数字后面出现的奇怪符号外,其他一切都正常工作 此时数组中的第一个数字,元素之间的第二个不同,3d-第二个已经移动到第二个数组中。 输出: 1 2/3 44/722/9一/ 二, 这些符号来自哪里?什么原因?错误的寄存器?为什么在第一个循环中“gap”(数组)有正确的数字,但当我稍后遍历这个数组时,它只有2和有线符号 INCLUDE Irvine32.inc .data array byte 1,3,7,9 gap byte ?

我在计算这些数字之间的差距。为此,我使用了两个数组。因此,除了输出和数字后面出现的奇怪符号外,其他一切都正常工作

此时数组中的第一个数字,元素之间的第二个不同,3d-第二个已经移动到第二个数组中。 输出: 1 2/3 44/722/9一/
二,

这些符号来自哪里?什么原因?错误的寄存器?为什么在第一个循环中“gap”(数组)有正确的数字,但当我稍后遍历这个数组时,它只有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

谢谢大家!

明白了!变量间隙初始化错误


这是array-1 dup(?)的正确初始化
间隙字节长度

间隙字节?
您的意思是该类型对于此操作来说太小了吗?