[공학] 어셈블리어 - 어셈블리어를 이용하여 주어진 정보 출력
페이지 정보
작성일 22-10-08 15:18
본문
Download : [공학] 어셈블리어 - 어셈블리어를 이용하여 주어진 정보 출력.hwp
[공학] 어셈블리어 - 어셈블리어를 이용하여 주어진 정보 출력 , [공학] 어셈블리어 - 어셈블리어를 이용하여 주어진 정보 출력공학기술레포트 , 공학 어셈블리어 어셈블리어를 이용하여 주어진 정보 출력
[공학] 어셈블리어 - 어셈블리어를 이용하여 주어진 정보 출력
공학,어셈블리어,어셈블리어를,이용하여,주어진,정보,출력,공학기술,레포트
순서
설명
레포트/공학기술
[공학] 어셈블리어 - 어셈블리어를 이용하여 주어진 정보 출력
Download : [공학] 어셈블리어 - 어셈블리어를 이용하여 주어진 정보 출력.hwp( 16 )
1. 문제定義(정의)
자신의 기본 정보(학번,이름,전공,직책)를 출력하고, 나이는 EAX 레지스터에 저장하여 출력 할 것. 이때 기본 정보는 콜론(:)이후의 문장만 출력하고 add, mov 니모닉과 offset 연산자를 사용 할 것.
2. 해결방법
① 기본정보 출력방법
menu1 BYTE `Student ID : 200702661`,0dh,0ah,0
여기서 콜론(:)이후의 문장만 출력하기 위해선 콜론이 있는 지점의 세그먼트 주소를 알아야합니다.
여기서 저의 나이는 22이므로 menu5의 처음 점으로부터 DWORD를 4번 하여야 합니다.
② 나이를 eax에 저장 후 출력하기
menu5 DWORD 18h,19h,20h,21h,22h,23h,24h,25h,26h,27h,28h,29h;
menu5에 18부터 29까지 순차적으로 저장되어 있습니다. 이때 사용되는 연산자가 바로 offset 연산자입니다. …(생략(省略))
다.
이때 menu1이 저장된 edx의 출력은 Student ID : 200702661 전체가 나오므로 add edx,DWORD를 세 번 해줍니다.
mov edx,OFFSET menu1 ; menu1의 처음 점을 edx에 저장
add edx,DWORD ; 처음 점에서 dword만큼 이동
add edx,DWORD
add edx,DWORD
call writestring ;menu1출력
이러한 원리를 이용하여 menu4까지 출력하면 원하는 콜론뒤의 값이 출력됩니다. add edx,DWORD는 dword크기(32byte)만큼 앞의 주소를 edx에 저장하는 명령어입니다.
마찬가지로 offset의 원리를 이용하면 자신의 원하는 값의 주소를 알수 있습니다.
건물을 메모리라고 생각하면 segmet는 층, offset은 그 층의 방으로 생각하면 쉽습니다.
`data segment`
offset menu1이 저장된 곳.
즉 색칠한 부분의 처음 점이 menu1이 처음 하는 부분입니다.


