목록▶ INBOX ◀ (17)
개발자 노트

Windows Snap 관련 Windows Key+Left : 활성 창을 왼쪽으로. Windows Key+Right : 활성 창을 오른쪽으로. Windows Key+Up : 활성 창을 위쪽으로. Windows Key+Down : 활성 창을 아래쪽으로. 가상 데스크톱 관련 Windows Key+Ctrl+D : 새 가상 데스크톱 만들기. Windows Key+Ctrl+Left : 왼쪽 가상 데스크톱으로 이동. Windows Key+Ctrl+Right : 오른쪽 가상 데스크톱으로 이동. Windows Key+Ctrl+F4 : 현재 가상 데스크톱 닫기. Windows Key+Tab : 모든 가상 데스크톱과 동작 앱(응용 프로그램 확인) : 작업 뷰 페이지. 명령 프롬프트 관련 Shift+Left : 커서의 왼쪽..
#include using namespace std; typedef struct Body{int tall;int weight;}body; int main(){body person[2]; cout > person[0].tall >> person[0].weight; cout > person[1].tall >> person[1].weight; if(person[0].tall > person[1].tall && person[0].weight > person[1].weight){cout
#include using namespace std; double calc(double &input){double cm;cm = input * 91.44; return cm;}int main(){double user_input; cout > user_input; double cm = calc(user_input);cout
블럭을 씌운다. (또는 글상자 선택) ctrl + >(ctrl + shift + .) 글씨 크기 키우기ctrl +
메모리는 세그먼트 레지스터와 함께 번지를 지정해야한다.그 다음에 모르는 것이 버퍼 어드레스라는 것이다. 이것은 디스크에서 읽은 데이터를 메모리의 어디에 저장할 것인지를 나타내는 주소 값이다.보통, 본지는 1개의 레지스터로 나타내면 좋을 것 같지만, BX만으로는 0~0xFFFF 까지의 값밖에 표현할 수 없다. 이것은 0부터 65,535 번지까지 밖에 나타낼 수 없다는 의미이다.이것을 극복하기 위해, EBX 레지스터라는 것이 나중에 나와서 이것으로 4GB까지 다룰 수 있게 되었다. 이것은 cpu가 다룰 수 있는 최대 메모리 용량이므로, 문제 없다. 그러나 EBX가 사용될 수 있게 된 것은 훨씬 뒤의 이야기이고, BIOS들이 설계된 시대의 CPU는 32비트 레지스터를 붙이는 것이 좀 어려웠기 때문에, 할 수 ..
Q. C언어의 함수를 어셈블리어와 연계할 때 어셈블리어에서만 함수 앞에 언더바를 붙이는 이유어셈블리어로 c 라이브러리를 만들 때함수명은 동일하나 어셈블리어에서는 함수명 앞에 언더바를 붙이는 이유가 궁금했다. [예시] 만약 c언어 함수가 void io_hlt(void)일 경우--------어셈블리어 파일에서의 함수명----------_io_hlt---------------------------------------------------- A. 이유는 컴파일 과정의 linkage 때문이다.[상세설명]우선 어셈블리어 함수명 앞에 _(언더바)를 붙여주는 이유는 c에서 호출할 수 있도록 하기 위해서이며언더바를 붙이지 않은 함수는 어셈블리어끼리만 호출하도록 한다는 의미가 된다.그렇기 때문에 어셈블리어에서는 c언어의..
부트로더에 대한 이해를 돕기 위해 먼저 컴퓨터 부팅에 대해 설명해보겠다. 00. 컴퓨터 부팅부팅이란 PC가 켜진 후에 운영체제(이하 OS)가 실행 되기 전까지 수행되는 일련의 작업 과정을 말한다. 간단하게 그림으로 나타나면 다음과 같이 나타낼 수 있다. 제일 먼저 PC의 전원이 켜지면 ROM에 들어있는 BIOS가 로드 된다.BIOS는 컴퓨터에 연결된 저장 매체에서 설정된 부팅 순서대로 부트로더들을 불러 온다. 이 때, 하드 디스크가 첫 번째 부팅 장치로 설정되어 있으면, BIOS는 하드 디스크의 부트로더를 로드한다. 부트로더는 커널을 메모리에 로드하고 최종적으로 OS를 읽어내는 역할을 한다. 부팅 과정 중에서 부트 로더 동작 전 단계까지에 대한 자세한 설명은 다음의 그림으로 대체하겠다. 위의 그림에서 '..
1. ROM BIOS BIOS는 Basic Input Output System의 약자로서 컴퓨터의 가장 핵심적인 부분 중 하나이다. 컴퓨터에 전원이 들어오면 이루어지는 초기의 동작은 자체 진단과 부팅으로 나뉘어 진다. 자체 진단은 Power On Self Test(POST)라 부르는데 CPU를 비롯하여 BIOS 내용의 검사, CMOS 내용 검사, DMA, Keyboard, Memory, Video Card 등 각종 하드웨어 장치들에 대한 이상유무 검사가 이루어진다. 또 이 과정에서 각종 하드웨어 장치들의 초기화가 행해지는데 이는 정상적인 동작을 위해 필수적으로 거치는 작업이다. 이런 작업에서 이상없이 통과되면 부팅이 이루어지는데, 부팅에 관해서는 좀 더 자세히 알아보자. 2. ROM BIOS의 역할 컴퓨..
DB 명령은 'data byte'의 약어로, 파일의 내용을 1바이트만 직접 쓰는 명령이다. DW 명령은 'data word'의 약어로, 파일의 내용을 16비트 즉 2바이트만 직접 쓰는 명령이다. DD 명령은 'data double-word'의 약어로, 파일의 내용을 32비트 즉 4바이트만 직접 쓰는 명령이다. RESB 명령은 'reserve byte'의 약어로, 예약의 의미로 지정한 바이트 만큼을 비어둘 때 사용하는 명령이다.nask라는 어셈블러에서는 지정한 바이트 만큼을 비어두는 것에 그치지 않고 0x00 으로 채워진다.예) RESB 16 은 16바이트의 공간을 예약해둔다는 의미이다. nask에서는 16바이트의 공간을 0x00으로 채운다. ; 명령은 코멘트 명령이다. MOV..
바이너리 편집기BZ 를 이용하여 아래 그림과 같이 값을 입력한다. … … … run.bat 작성 copy helloos.img ..\z_tools\qemu\fdimage0.bin ..\z_tools\make.exe -C ..\z_tools\qemu ;heeyam-os ; 이하는 표준적인 FAT12 포맷 플로피디스크를 위한 서술 db 0xeb, 0x4e, 0x90 db "HELLOIPL" dw 512 db 1 dw 1 db 2 dw 224 dw 2880 db 0xf0 dw 9 dw 18 dw 2 dd 0 dd 2880 db 0,0,0x29 dd 0xffffffff db "HEEYAM-OS " db "FAT12 " resb 18 ; 프로그램 본체 db 0xb8, 0x00, 0x00, 0x8e, 0xd0, 0..
사용자가 입력한 문자열의 유효성 검사 스크립트 #스크립트 코드 #!/bin/bash validInput() { compressed="$(echo $1 | sed -e 's/[^[:alnum:]]//g')" if [ "$compressed" != "$1" ] ; then return 1 else return 0 fi } echo -n "Enter input: " read input if ! validInput "$input" ; then echo "Your input must consist of only letters and numbers." >&2 exit 1 else echo "Input is valid." fi exit 0 스크립트의 논리는 sed 기반의 변환으로 입력 내용을 바꿔 새로운 버전의 입력..
"#!" 는 스크립트를 실행할 셸을 지정하는 선언문이다. !앞에 #이 붙는다고해서 주석으로 착각하지 말 것! 셸 파라미터 $0 : Script를 실행시킬 때 프로그램의 이름이 포함된 첫 번째 문자열이 저장된다. $1, ...$N : argument들이 순서대로 저장된다. 위치 매개변수( Positional Parameter )라고 불린다. $? : 가장 최근에 실행된 포그라운드 파이프라인의 종료상태를 가지고 있다. 환경변수 $IFS : 입력필드 구분자, Shell 상에서 입력을 읽어들일 때 글자를 구분하기 위한 목적으로 사용되는 문자 목록, 보통은 스페이스, 탭, 개형문자이다. for문 [사용법] for 변수 in 반복될 인수 do 실행문 done [예제] for x in {1..5} do echo "$..