2017-04-26 1 views
0

어셈블리에서 문자열에 int 값을 할당 할 수 있습니까? 예를 들어조립 - 문자열에 int 값 지정

, I는 >> 쥐 = 2를 넣고, 난 넣으면 >>, 래트 + 2 변수를 사용하는 프로그램을 호출 할 때, 그것이 가능하다면, 4.

를 반환해야 , 그것을하는 가장 좋은 방법은 무엇입니까?

도움이 될 것입니다.

답변

0

변수에 정수를 저장하려는 것처럼 들리 겠지만, 문자열을 사용하여 이름이 지정됩니다. 그것은 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에 설명되어 있습니다.

0
의이 내가 찾던되지 무슨

하지만, 덕분에

나는 당신이 할 수있는, (예를 들어) 카시오 계산기로,

그래서 NASM과 변수 계산기를 만들려고 해요 X, Y, M, Z 및 기타 변수를 넣은 다음 해당 변수에 값을 할당 할 수 있습니다.

그게 내가 코드를 찾는 것이 아니라 화면에서 찾는 것입니다.

다시 한 번 도움을 주심으로써 코드 오류로 다른 오류가 발생했습니다.