Escribir un programa para multiplicar dos números binarios de 64 bits en lenguaje ensamblador
CODE?SEGMENT ASSUMECS:CODE ORG100H START:?JMPBEGIN
X?DQ111111 DQ0;?Increase?Esto es para dejar espacio para el desplazamiento a la izquierda
Y?DQ111111
Z?DW8?DUP(0) BEGIN:?PUSH?CS POPDS PUSH?CS POPES MOVCX,64 @0: SHRWORD?PTR?Y+6,1 RCRWORD?PTR? Y+4,1 RCRWORD?PTR?Y+2,1 RCRWORD?PTR?Y,1 JNC@1 MOVAX,WORD?PTR?X ADDWORD?PTR?Z,AXE MOVAX, WORD?PTR?X+2 ADCWORD?PTR ?Z+2,AXE MOVAX,WORD?PTR?X+4 ADCWORD?PTR?Z+4,AXE MOVAX,WORD?PTR?X+6 ADCWORD?PTR?Z+6,AXE MOVAX,WORD?PTR?X+ 8 ADCWORD?PTR?Z+8,AXE MOVAX,WORD?PTR?X+10 ADCWORD?PTR?Z+10,AXE MOVAX,WORD?PTR?X+12 ADCWORD?PTR?Z+12, AXE MOVAX,WORD? ?X+14 ADCWORD?PTR?Z+14,AX @1: SHLWORD?PTR?X,1 RCLWORD?PTR?X+2,1 RCLWORD?PTR? 1 RCLWORD?PTR?X+8,1 RCLWORD?PTR? X+10,1 RCLWORD?PTR?X+12,1 RCLWORD?PTR?X+14,1 DECCX CMPCX,0 JE@2 JMP@0 @2: MOVAX,Z MOVDX,Z+2 CALL?