어셈블리에 대한 기본적인 질문입니다..
글쓴이: 박창우 / 작성시간: 월, 2006/09/25 - 2:36오전
nasm에서 system call 4번 write함수를 통해서 숫자를 출력할 수 있는가요??
예를 들어
1 val1 dw 97
...
10 mov edx, 4
11 mov ecx, val1
12 mov ebx, 1
13 mov eax, 4
18 int 0x80
이라고 하였을 때, a 가 출력되는데 아스키코드로 환산된 문자가 아닌 97이라는 숫자가 찍히게 할 수 있나요?
만약 위의 예제를 변형하여 숫자를 출력할 수 있는 방법이 없다면 어떤 방법을 쓸수 있는지 자세한 답변을 부탁드립니다(^^)(__)
Forums:
아스키코드로 "9""7"을
아스키코드로 "9""7"을 입력하시면 됩니다 ^^
아스키 코드로 9가 0x39, 7이 0x37 이니...
val1 dw 0x39 0x37 요렇게 하고 밑에 길이 인자를 2로 바꿔 주시면 될 듯 하네요 ^^
아니면 그냥 "97" 이라고 해도 될듯 하구요~
아마 원하는 것은
아마 원하는 것은 0x97을 인자로 넘겨주면 그걸 ASCII로 "97"이라고 찍기를 바라시는 것 같은데요.
그럼 서브루틴을 하나 만드셔야 할 듯합니다. 방법은 간단합니다.
한 바이트를 받아서 ...
이놈을 오른쪽으로 4비트 이동해서 '0'을 더한 다음 출력합니다.
다음은 처음 받은 바이트에서 0x0f와 AND 연산을하고 '0'를 더한 다음 출력합니다.
댓글 달기