■ Copying an Array ● 문제개요 Assembly Language를 이용하여 DWORD type의 배열에 데이터를 삽입 후 출력을 해준다. ● 알고리즘 array에 DWORD 타입의 데이터 26개를 저장한다. 배열의 길이를 구해서 ecx에 저장을 한 후 루프를 이용하여 배열의 제일 앞 데이터부터 WriteHex를 이용하여 출력을 해주고 esi값을 증가시켜 다음 배열을 출력해준다. 하나의 값을 출력하면 콤마를 출력하여 구별을 해주고 cmp를 이용하여 배열의 끝을 확인한후 끝까지 출력이 됬으면 콤마를 마지막에 출력 안하고 루프를 탈출한다. 루프를 탈출하면 마지막에 증가되 esi를 하나 감소시켜주어서 배열의 길이에 맞게 하고 다시 루프로 들어가야 같은 방식으로 esi를 감소시키면서 배열을 거꾸로 출력을 해준다. ● 소스 TITLE Program Template (array.asm) INCLUDE Irvine32.inc .data array DWORD 10h, 20h, 30h, 40h, 11h, 12h, 16h, 14h, 18h, 22h, 96h, 44h, 89h DWORD 17h, 94h, 27h, 16h, 82h, 33h, 15h, 21h, 77h, 73h, 02h, 12h, 09h arrayLen = ($ - array) 4 .code main PROC mov ecx, arrayLen ; 배열의 길이를 ecx에 넣어 준다. mov esi, 0 ; esi를 초기화 한다.
L1 mov eax, array[esi] ; eax에 배열의 값을 넣어준다. mov al, `,` ; 데이터 사이에 `,`를 넣어주기 위함. call WriteHex ; eax 출력 inc esi ; 다음 배열을 보기 위해 esi 증가시킴. cmp esi, arrayLen ; 배열의 마지막값을 출력하고 `,`를 출력하지않기위해 jae next1 ; esi와 arrayLen을 비교하...
· 해피레포트는 다운로드 받은 파일에 문제가 있을 경우(손상된 파일/설명과 다른자료/중복자료 등) 1주일이내 환불요청 시 환불(재충전) 해드립니다.
(단, 단순 변심 및 실수로 인한 환불은 되지 않습니다.)
· 파일이 열리지 않거나 브라우저 오류로 인해 다운이 되지 않으면 고객센터로 문의바랍니다.
· 다운로드 받은 파일은 참고자료로 이용하셔야 하며,자료의 활용에 대한 모든 책임은 다운로드 받은 회원님에게 있습니다.
저작권안내
보고서 내용중의 의견 및 입장은 당사와 무관하며, 그 내용의 진위여부도 당사는 보증하지 않습니다.
보고서의 저작권 및 모든 법적 책임은 등록인에게 있으며, 무단전재 및 재배포를 금합니다.
저작권 문제 발생시 원저작권자의 입장에서 해결해드리고 있습니다. 저작권침해신고 바로가기