어셈블리 언어 8086 :우리는 64 비트 값을 취할 수 있도록 한 번에 두 개의 32 비트 reg (32 + 32 = 64)을 사용합니까? 어셈블리 언어 8086
나는 그것이 콘솔에서 두 값을 받아 우리가 더 높은 주면 .. 그것은 단지 32 비트 (8 자리)에서 값을 취할 수있는 결과를 부여합니다 추가 할 프로그램을 가지고 값을 입력하면 콘솔 winbdow에서 정수 오버플로 오류가 발생합니다 ..
입력 1과 입력 2에서 32 비트 값을 더주고 싶다면 어떻게해야합니까?이 DWORD (32 비트)의 배열을 수행하고 넣을 수의 절반 (16 비트)의 절반 (16 비트)의 값
예(?)
배열 1의 DWORD 2 DUP
배열 2 DWORD 2 DUP (?)
32 비트 레지스터를 사용하여 value2에 값 1을 더하고 64 비트 (16 자리 숫자) 이하의 값을 지정하고 싶습니다. 2 reg (32 + 32 = 64 비트)의 공간을 사용할 수 있습니다. ? ...
우리가 64 비트로 만들기 위해 32 비트의 2 레지스터를 만들 수 있습니다. 가능하다는 것을 알고 있지만 어떻게해야할지 모르겠군요 ... 어셈블리 언어에서 새롭기 때문에 ...
나는 KIP.R.IRVINE 링크를 사용하고 있습니다. 어셈블리 언어의 라이브러리
2 32 비트 reg를 사용하여 64 비트 값을 제공하는 방법은 무엇입니까? 또는 2 32 비트 reg에서 64 비트 값을 가져 오는 방법은 무엇입니까? 내가 32 비트 추가에 대한 코드는 여기
코딩에 it..need 도움을 코딩하는 방법을 잘 모릅니다 :INCLUDE Irvine32.inc
; In above i am calling KIP.R.IRVINE Link Library for assembly language
.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
ADC 명령 – James
Parsifal.if 32 비트보다 두 번째 값과 두 번째 값을주고 싶습니다. 그러면 문제가됩니다 .. –
32 비트 프로세서에서 64 비트 숫자로 작업해야하고 32 비트 수학에서 나온 64 비트 결과는 두 개의 32 비트 레지스터에서 64 비트를 먹는 모든 수학 함수를 작성해야합니다. 어셈블리가 아닌 세계에는이를 수행하는 다양한 "BigNum"라이브러리가 있습니다. –