본문 바로가기
반응형

코스웨어/13년 스마트컨트롤러419

9월 25일 어셈블리 - 석주원 추가된 프로시저 ; 반환값이 unsigned char인 프로시져 : 인수로 받은 주소값의 메모리 상태를 보여주는 Memory Display 기능_MDPROCNEAR32 PUSHEBP; Entry CodeMOVEBP, ESP MOVEBX, [EBP+8]MOVEAX, [EBX] MOVESP, EBP; Exit CodePOPEBPRET _MDENDP ; 메모리 수정 프로시져 : 인수로 받은 주소에다 인수로 받은 값을 삽입하는 기능_MMPROCNEAR32 PUSHEBP; Entry CodeMOVEBP, ESP MOVEBX, [EBP+12]; char(뒤의 인수부터 스택에 삽입됨)MOVEAX, [EBP+8]; int MOVBYTE PTR [EAX], BL; 주소값은 4바이트라서?[AL]안됨 MOVESP, EBP;.. 2013. 9. 25.
2013.09.25 어셈블리_이수현 포인트함수의 리턴값 살펴보기함수의 인자 살펴보기 ASKY : EAX에 100을 넣어 반환값을 보는 함수MD : 인자로 A의 주소를 int 값으로 받아 4byte A값의 1byte 값만 출력하는 함수MM : 인자로 A의 주소와 AL값에 넣을 0xFF 값을 가지고 A의 AL값을 FF로 바꾸는 함수 - ESP는 특수한 경우에만 사용, 일반적인 경우에는 사용하지 않는다- EAX는 계산, ECX는 카운트, EBX/EDX는 일반 2013. 9. 25.
130925수 어셈블리 숙제 조유진 소스코드.386.MODEL FLAT PUBLIC_STST; Store StatusPUBLIC_LDST; Load StatusPUBLIC_MD; Memory DisplayPUBLIC_MM; Memory Modify .CODE_STSTPROCNEAR32PUSHEBPMOVEBP, ESP PUSHFD ANDDWORD PTR [EBP-4], 0FFFFFEFFh MOVESP, [EBP+8] ADDESP, 40 PUSHAD ADDESP, 16;Old EBP, RA, 인자, Main과의 경계MOVEAX, EBPADDEAX, 8 PUSHEAX; 메인 ESP PUSH[EBP]; Old EBP SUBESP, 8 PUSH[EBP+4]; EIP(Return Address)PUSH[EBP-4]; EFL MOVESP, EBPPOP.. 2013. 9. 25.
20130924 USART 소스 _ 손초롱 2013. 9. 25.
9월 24일 ATmega 시리얼 통신 & 어셈블리 정리 추가된 함수와 변수 typedef struct _cmdmap { void *vpCmd; void (*fp)(void); } CMDMAP; /* 문자열을 받을 수 있는 보이드 포인터와 함수포인터를 멤버로 가지는 구조체 변수 */ CMDMAP stCMDList[] = { { "LED ON" , LED_on }, { "LED OFF" , LED_off }, { "LCD" , LCD_test }, { "ADC" , ADC_test }, { 0 , 0 } }; //-------------------CMDMAP 구조체의 함수 포인터와 같은 형태의 함수들--------------------------------- void LED_on() { PORTA = 0; // LOW : H-L 켜짐 return; } void .. 2013. 9. 24.
20130924 어셈블리 pushad - 손초롱 2013. 9. 24.
CONTEXT 프로젝트(2) POPAD -0924 임기준 monitor.asm;DATA: 09/24 .386.MODEL FLAT PUBLIC _STSTPUBLIC _LDST .CODE_STSTPROC NEAR32PUSHEBPMOVEBP, ESPPUSHFDMOVEAX, [EBP - 4]ANDEAX, 0FFFFFEFFhMOV[EBP - 4], EAXMOVESP, [EBP + 8]ADDESP, 40 PUSHAD PUSH[EBP + 4]PUSH[EBP - 4]ADDESP, 24 MOVEAX, EBP;PUSHEBP + 8ADDEAX, 8;PUSHEBP + 8PUSHEAX;PUSHEBP + 8PUSH[EBP];old ebpMOVESP, EBPPOPEBPRET_STSTENDP _LDSTPROC NEAR32MOVESP, [ESP + 4]; context구조체 주소로 이동 E.. 2013. 9. 24.
STST, LDST context switching 프로그램 만들기 STST(Store Status), LDST(Load Status) 프로시저를 C소스에서 호출하여 CPU(레지스터값)->Memory , Memory->CPU(레지스터값) 값 넣는 context switching 프로그램 만들기 C Source #include typedef struct _context { int efl; int eip; int edi; int esi; int ebp; int esp; int ebx; int edx; int ecx; int eax; }context ; void Printf_REG(context *); void STST(context *); void LDST(context *); int main() { context stReg = {0,}; Printf_REG(&stReg);.. 2013. 9. 24.
2013.09.24_ Assambly 소스 _ 김성엽 0924_MEMtoCPU.c#include typedef struct _Context { int efl; int eip; int edi; int esi; int ebp; int esp; int ebx; int edx; int ecx; int eax; }CONTEXT; void PrintReg(CONTEXT *); void STST(CONTEXT *); void LDST(CONTEXT *); int main() { CONTEXT stpReg = {0,}; PrintReg(&stpReg); STST(&stpReg); PrintReg(&stpReg); getchar(); LDST(&stpReg); // STST로 가게해줌. while 문 역할 // 메모리안에 있는 정보를 CPU 로 옮겨준다. printf("K.. 2013. 9. 24.
728x90
반응형