저는 어셈블리 언어에 대해 매우 익숙하지 않습니다. 저는 기초에 관해 꽤 견고한 이해를 가지고 있지만 사용자 입력은 항상 저를 당황하게했습니다. 그래서 지금 내가 사용자로부터 한 자리를받을 수있는 다음과 같은 코드가 있습니다NASM의 다 자리 입력
mov eax, 3
mov ebx, 0
mov ecx, inStrBuf
mov edx, StrLen
int 80h
내가 ECX의 값을 넣어 후
SECTION .bss
inStrBuf: times StrLen resb ' '
Section .data
StrLen: equ 8
를 다음과 같이 정의가를, 값은이다 digit = 2608. 그래서 내가 해왔 던 것은 단순히 2608을 빼고 숫자를 얻는 것이다. 이제 제가 46 자리 숫자와 같은 숫자를 두 개 이상 넣을 때 저는 10 진수로 변환하면 669236이됩니다. 이전처럼 2608을 빼는 간단한 방법이 없습니다.
우선 2608이 무엇인지, 그리고 654와 같은 숫자를 받아들이고 그것을 레지스터에 넣는 방법이 있습니다 (물론 16 진수 값으로). 감사!