Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.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 8bit的Nasm乘法_Assembly_Nasm_Multiplication_8 Bit - Fatal编程技术网

Assembly 8bit的Nasm乘法

Assembly 8bit的Nasm乘法,assembly,nasm,multiplication,8-bit,Assembly,Nasm,Multiplication,8 Bit,我正试图写一个NASM程序来乘以2个8位的数字,但我没有得到超过15位的答案。我是一个初学者,我真的不知道它真正的工作。。。 请帮忙 section .data msg1:db "Enter the numbers:" len1:equ $-msg1 msg2:db "Product is: " len2:equ $-msg2 section .bss a:resb 2 b:resb 2 p1:resb 1 p2:resb 1 section .text global _start _sta

我正试图写一个NASM程序来乘以2个8位的数字,但我没有得到超过15位的答案。我是一个初学者,我真的不知道它真正的工作。。。 请帮忙

section .data
msg1:db "Enter the numbers:"
len1:equ $-msg1
msg2:db "Product is: "
len2:equ $-msg2

section .bss
a:resb 2
b:resb 2
p1:resb 1
p2:resb 1

section .text
global _start
_start:mov eax,4
   mov ebx,1
   mov ecx,msg1
   mov edx,len1
   int 80h

   mov eax,3
   mov ebx,0
   mov ecx,a
   mov edx,2
   int 80h

   mov eax,3
   mov ebx,0
   mov ecx,b
   mov edx,2
   int 80h

   mov eax,4
   mov ebx,1
   mov ecx,msg2
   mov edx,len2
   int 80h

   clc
   mov ecx,4
   mov al,[b]
   sub al,'0'
   mov ah,[a]
   sub ah,'0'
   shl ah,4
back:mov bl,al
     and bl,01h
     jz ahead
     add al,ah
 ahead:ror al,1
       loop back
       and eax,0000000fh
       daa
       mov ebp,eax
       and eax,000000f0h
       shr eax,4
       add eax,'0'
       mov [p1],eax
       mov eax,4
       mov ebx,1
       mov ecx,p1
       mov edx,1
       int 80h

       mov eax,ebp
       and eax,0000000fh
       add eax,'0'
       mov [p2],eax

       mov eax,4
       mov ebx,1
       mov ecx,p2
       mov edx,1
       int 80h

       mov eax,1
       mov ebx,0
       int 80h          

大部分代码实际上都是复制的。互联网上没有多少关于NASM程序的信息

“互联网上没有多少关于NASM程序的信息”有很多关于x86汇编的信息,这就是你正在使用NASM组装的内容。如果您的问题与某些NASM特定语法有关,那么您可能可以在中找到答案。我在您的问题中没有看到任何东西可以解释您为什么不使用
mul
指令。-1用于大量未注释代码的代码转储,而不解释您的代码应该如何工作。我看到一些ASCII字符常量,还有一个旋转?!?至少它缩进得很好。但它看起来更像是DOS系统调用。如果你把应该乘法的部分分开,这可能会有帮助。