어셈블리어 출력
페이지 정보
작성일 19-10-20 03:28
본문
Download : 어셈블리어 출력.hwp
마찬가지로 offset의 원리를 이용하면 자신의 원하는 값의 주소를 알수 있습니다.
Download : 어셈블리어 출력.hwp( 65 )
레포트/기타
어셈블리어 출력
순서
1. 문제정이
자신의 기본 정보(학번,이름,전공,직책)를 출력하고, 나이는 EAX 레지스터에 저장하여 출력 할 것. 이때 기본 정보는 콜론(:)이후의 문장만 출력하고 add, mov 니모닉과 offset 연산자를 사용 할 것.
2. 해결방법
① 기본정보 출력방법
menu1 BYTE `Student ID : 200702661`,0dh,0ah,0
여기서 콜론(:)이후의 문장만 출력하기 위해선 콜론이 있는 지점의 세그먼트 주소를 알아야합니다.
건물을 메모리라고 생각하면 segmet는 층, offset은 그 층의 방으로 생각하면 쉽습니다. add edx,DWORD는 dword크기(32byte)만큼 앞의 주소를 edx에 저장하는 명령어입니다.
mov edx,OFFSET menu1 ; menu1의 처음 점을 edx에 저장
add edx,DWORD ; 처음 점에서 dword만큼 이동
add edx,DWORD
add edx,DWORD
call writestring ;menu1출력
이러한 원리를 이용하여 menu4까지 출력하면 원하는 콜론뒤의 값이 출력됩니다.
여기서 저의 나이는 22이므로 menu5의 처음 점으로부터 DWORD를 4번 하여야 합니다. …(투비컨티뉴드 )
어셈블리어 출력
설명
어셈블리어,출력,기타,레포트




어셈블리어 출력 , 어셈블리어 출력기타레포트 , 어셈블리어 출력
다.
`data segment`
offset menu1이 저장된 곳.
즉 색칠한 부분의 처음 점이 menu1이 처음 하는 부분입니다.
② 나이를 eax에 저장 후 출력하기
menu5 DWORD 18h,19h,20h,21h,22h,23h,24h,25h,26h,27h,28h,29h;
menu5에 18부터 29까지 순차적으로 저장되어 있습니다.
이때 menu1이 저장된 edx의 출력은 Student ID : 200702661 전체가 나오므로 add edx,DWORD를 세 번 해줍니다. 이때 사용되는 연산자가 바로 offset 연산자입니다.