어셈블리에서 문자열에 int 값을 할당 할 수 있습니까? 예를 들어조립 - 문자열에 int 값 지정
, I는 >> 쥐 = 2를 넣고, 난 넣으면 >>, 래트 + 2 변수를 사용하는 프로그램을 호출 할 때, 그것이 가능하다면, 4.
를 반환해야 , 그것을하는 가장 좋은 방법은 무엇입니까?
도움이 될 것입니다.
어셈블리에서 문자열에 int 값을 할당 할 수 있습니까? 예를 들어조립 - 문자열에 int 값 지정
, I는 >> 쥐 = 2를 넣고, 난 넣으면 >>, 래트 + 2 변수를 사용하는 프로그램을 호출 할 때, 그것이 가능하다면, 4.
를 반환해야 , 그것을하는 가장 좋은 방법은 무엇입니까?
도움이 될 것입니다.
변수에 정수를 저장하려는 것처럼 들리 겠지만, 문자열을 사용하여 이름이 지정됩니다. 그것은 rkhb가 질문을 해석하는 방법과 매우 다르지만 사용하신 태그로 판단 할 때 실제 질문과 더 일치한다고 생각합니다. 초기화 데이터와 초기화되지 않은 데이터 :
NASM에서 지원되는 변수의 두 가지 기본 유형이 있습니다.
초기화 된 데이터를 사용하여 변수를 선언 할 때 정적 값을 할당합니다. 실제로 초기화 된 데이터는 상수과 비슷하지만 상징적으로 이름을 지정합니다. DB
(Declare Byte), DW
(Declare Word), DD
(Declare Doubleword) 및 DQ
(Declare Quadword)은 초기화 된 데이터를 선언하는 데 사용되는 명령입니다. 그래서 당신은 할 수 : 어딘가에 다음
rat DD 2
그리고 당신의 코드에서 수행
mov eax, DWORD [rat]
add eax, 2
; eax now contains 4
을 초기화되지 않은 데이터를 사용하면 기본적으로 그냥 데이터를 보유 할 공간을 확보하고 있습니다. 이 데이터는 정적으로 초기화되지 않습니다. 당신은 런타임에 그것을 채 웁니다. 이 경우 RESB
(예약 바이트), RESW
(예약어), RESD
(예약 더블 워드) 및 RESQ
(예약 쿼드 워드)을 사용합니다. 예를 들면 : 나중에 코드에서 다음
rat RESD 1 ; reserve space for 1 DWORD-sized value
, 당신은 갈 것 :
call GetValue ; returns value in EAX
mov DWORD [rat], eax ; store value in 'rat'
이 모든 NASM 설명서의 Chapter 3에 설명되어 있습니다.
하지만, 덕분에
나는 당신이 할 수있는, (예를 들어) 카시오 계산기로,
그래서 NASM과 변수 계산기를 만들려고 해요 X, Y, M, Z 및 기타 변수를 넣은 다음 해당 변수에 값을 할당 할 수 있습니다.
그게 내가 코드를 찾는 것이 아니라 화면에서 찾는 것입니다.
다시 한 번 도움을 주심으로써 코드 오류로 다른 오류가 발생했습니다.