Можем ли мы использовать два 32-битных регистра (32 + 32 = 64) за раз, чтобы он мог принимать 64-битные значения? Ассемблер 8086

Язык ассемблера 8086:

Я сделал программу для добавления, она принимает два значения в консоли и дает нам результат .. он может принимать значение только под 32 бит (8 цифр), если мы дадим более высокое значение, то это даст ошибку переполнения целых в консоли

Если я хочу дать более 32-битное значение в input1 и input2, как я это сделаю?

Я хочу добавить значение1 к значению2, используя 32-битный регистр, и дать значение под 64-битным (равно 16 цифрам). Можно использовать пробел2 рег (32 + 32 = 64 бит)?...

Как мы можем сделать 2 регистра из 32 бит, чтобы сделать его 64 битным, я знаю, что это возможно, но я не знаю, как это сделать ... потому что я новичок в ассемблере

Я использую библиотеки ссылок KIP.R.IRVINE на ассемблере

как мы дадим 64-битное значение с помощью 2 32-битного рег? или как мы позволим 2 32-битному регистру принимать 64-битное значение?

вот код для 32-битного сложения:

INCLUDE Irvine32.inc

.data

 Addition BYTE "A: Add two Integer Numbers", 0

 inputValue1st BYTE "Input the 1st integer = ",0
 inputValue2nd BYTE "Input the 2nd integer = ",0

  outputSumMsg BYTE "The sum of the two integers is = ",0

   num1 DD ?
   num2 DD ?
   sum  DD ?

   .code

   main PROC

   ;----Displays addition Text-----

  mov edx, OFFSET Addition
  call WriteString
  call Crlf
  ;-------------------------------

  ; calling procedures here

   call InputValues
   call addValue
   call outputValue

   call Crlf

   jmp exitLabel


   main ENDP


      ; the PROCEDURES which i have made is here


  InputValues PROC
  ;----------- For 1st Value--------


   call Crlf
   mov edx,OFFSET inputValue1st ; input text1
   call WriteString

   ; here it is taking 1st value
   call ReadInt    ; read integer
   mov num1, eax   ; store the value




     ;-----------For 2nd Value----------



      mov edx,OFFSET inputValue2nd ; input text2
      call WriteString


      ; here it is taking 2nd value
      call ReadInt    ; read integer
      mov num2, eax   ; store the value

      ret
      InputValues ENDP




     ;---------Adding Sum----------------

     addValue PROC
     ; compute the sum

     mov eax, num2  ; moves num2 to eax
     add eax, num1  ; adds num2 to num1
     mov sum, eax   ; the val is stored in eax

     ret
     addValue ENDP

     ;--------For Sum Output Result----------

     outputValue PROC

     ; output result

     mov edx, OFFSET outputSumMsg ; Output text
     call WriteString


     mov eax, sum
     call WriteInt ; prints the value in eax


     ret
     outputValue ENDP


     exitLabel:
     exit


    END main

Ответы на вопрос(1)

Ваш ответ на вопрос