인프런 커뮤니티 질문&답변

yaminma3님의 프로필 이미지
yaminma3

작성한 질문수

어셈블리 언어

작성

·

284

0

%include "io64.inc"

 

section .text

global CMAIN

CMAIN:

mov rbp, rsp; for correct debugging

;write your code here

mov rbp, rsp

 

PRINT_STRING msg_input

GET_DEC 2, data_max ; input mmax number

NEWLINE

;check 3'multiple

mov [data_size], word 0

mov edx, 1 ; index : edx~100

 

L1: ; AX/8bit = AH(나머지)

mov bl,3

mov ax,dx

div bl

cmp ah,0

jnz L_next

mov eax,0

mov ax,[data_size]

mov [data + eax*2], dx

inc eax

mov [data_size], ax

L_next:

inc edx

cmp dx,[data_max]

jle L1

 

; print number

PRINT_STRING msg_count

PRINT_DEC 2,[data_size]

NEWLINE

mov eax, 0

L_print:

PRINT_DEC 2, [data+eax*2]

NEWLINE

inc eax

cmp ax, word[data_size]

jl L_print

 

mov total, 0

mov eax, 0

mov ebx, 0

mov ecx,[data_size]

L_total:

add ebx,[data+eax*2]

inc eax

loop L_total

 

mov total, ebx

PRINT_STRING msg_total

PRINT_DEC 2, total

xor rax, rax

ret

 

section .data

msg_input db '# input max number:', 0x00

msg_count db '#number count:', 0x00

msg_total db '#total:', 0x00

 

section .bss

data_max resw 1

data_size resw 1

data resw 100

total resw 1

여기서, mov total 부터 L_total 까지 문제가 있는 것 같아요..
3의 배수의 합들을 구하려고 하는데, 물론 입력한 값에 대해서요.
3의 배수의 합을 구하려는 과정에서 계속 막히네요.. 대체 뭐가 문제인지 전 정말로 모르겠습니다.. ㅠㅠ
 

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
yaminma3님의 프로필 이미지
yaminma3

작성한 질문수

질문하기