검색결과 리스트
Period...에 해당되는 글 510건
- 2009.10.10 디버그 프로그램
- 2009.10.10 CPU 레지스터
- 2009.10.10 컴퓨터에서 데이터를 표현하는 방식
- 2009.10.10 아스키 코드표
- 2009.10.10 어셈블리 명령어
- 2009.10.10 어셈블리를 시작하며 알아둬야 할것들쿨키드
- 2009.10.10 파티션 매직 8.0 다운로드 [Partition Magic 8.0][한글판][사용매뉴얼, 사용법] 1
- 2009.10.10 항상위에, 윈도우창 투명도 설정 [Always on Top]
- 2009.10.10 [Style Builder]테마 폰트 바꾸기, 스타일빌더 다운로드 1
- 2009.10.10 TLY
글
어셈블리언어로 프로그램을 만들기 위해서는 두가지 방법이 있다. 한가지는 TASM 또는 Turbo Assembler(of Borland)를 사용하는것과 하나는 디버거를 쓰는것이다. 이번 섹션에서는 디버거를 사용할것이다. 왜냐하면 MS-DOS가 깔려있는 PC에는 모두 디버거가 있기 때문이다. 디버거는 아래의 특성을 가지고 사용자가 컴퓨터에 접근할수 있게한다.
디버그는 .com 파일만 만든다. 이러한 특성때문에 이 종류의 프로그램은 64kb를 넘지 못한다. 그리고 특정 세그먼트의 오프셋 0100H memory direction에서부터 시작되어야 한다.
(they also must start with displacement, offset, or 0100H memory direction inside the specific segment.)
디버그는 명령을 수행할수 있도록 몇가지 명령어를 제공한다
A 어셈블리 명령어를 기계어로 번역한다
D 메모리 영역에 있는 내용을 출력한다
E 특정 위치의 메모리에 데이터를 입력한다.(Enter data into memory, beginning at a specific location)
G 메모리에 있는 프로그램을 실행한다
N 프로그램에 이름을 지정한다
P 관련된 명령어들을 실행, 진행시킨다
Q 디버그 프로그램을 종료한다
R 하나 또는 한개 이상의 레지스터의 자료를 출력한다
T 한 명령어의 내용을 추적한다 (Trace the contents of one instruction)
U 기계어를 상징적 코드로 번역한다
W 디스크에 프로그램을 쓴다.
CPU내부의 레지스터의 내용을 디버그 프로그램을 이용해서 볼수있다. 디버그 프로그램을 실행시키려면 컴퓨터 프롬프트에 다음 명령어를 입력해라. (cmd창에서 하면 될것이다)
C:\>Debug [Enter]
다음 라인에 막대기 하나가 나타날것이다. 이것은 디버그 프로그램이 실행된것을 나타내고 여기서 다음과 같이 디버그 명령어를 사용할수있다.
-r [Enter]
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0100 NV EI PL NZ NA PO NC
0D62:0100 2E CS:
0D62:0101 803ED3DF00 CMP BYTE PTR [DFD3],00 CS:DFD3=03
CPU내부의 모든 레지스터의 내용이 출력되었다. 이것들을 보는 또다른 방법은 보고싶은 레지스터의 이름을 파라미터로 사용해서 "r"명령어를 쓰는것이다. 예를들어,
-rbx
BX 0000
:
이 명령어는 BX레지스터만을 보여준다 그리고 디버그 지시자가 "-" 에서 ":"로 바뀐다.
프롬프트가 이런모양일때 레지스터의 내용을 바꿀수 있다는것을 의미한다. 새로운 값을 입력해서 레지스터 값을 바꿀수 있고 입력없이 엔터를 누르면 바뀌지 않는다.
설정
트랙백
댓글
글
CPU는 4개의 내부 레지스터를 가지고 있다. 각각은 16비트 이다. 보통 AX, BX, CX, DX로 불리고 8비트로 두개의 레지스터로 나누면 AX는 high byte인 AH와 low byte인 AL 레지스터로 나뉜다. BX, CX, DX도 마찬가지로 적용된다.
레지스터들은 각각의 고유한 이름이 있다:
AX Accumlator
BX Base register
CX Counting register
DX Data register
DS Data segment register
ES Extra segment register
SS Battery segment register
CS Code segment register
BP Base pointers register
SI Source index register
DI Destiny index register
SP Battery pointer register
IP Next instruction pointer register
F Flag register
설정
트랙백
댓글
글
1>ASCII 코드
ASCII 는 American Standard Code for Information Interchange의 약자이다. 이 코드는 각각의 알파벳과 숫자와 기호들을 2진수 7자리까지 나타내고 8번째는 0으로 처리해서 나타낸것이다. 이 방식에서는 각각의 알파벳, 숫자, 기호들은 컴퓨터 메모리 1바이트를 차지한다.
우리는 이 데이터 표현방식이 숫자적 관점에서 볼때 매우 비효율적이라는걸 알수있다. 2진법은 1바이트로 0에서 255까지의 숫자를 나타낼수 있다. 그러나 ASCII의 1바이트는 오직 하나의 숫자만 표현할수있다. 이러한 비효율성대문에 ASCII코드는 주로 텍스트를 저장하는데에 쓰인다.
2> BCD 방식
BCD는 Binary Coded Decimal 의 약자이다. 이 표현방식은 4비트가 0에서 9까지의 숫자를 나타내는데에 쓰인다. 이 방식으로 1바이트당 2개의 숫자를 표현할수있다.
이 방식이 ASCII에 비해서 훨씬 효율적으로 보이지만 2진법보다 효율적이지 못하다. 왜냐하면 BCD는 0에서 99까지밖에 표현할 수 없기때문이다.
이 방식은 상업적인 어플리케이션에서 아주 큰 숫자를 나타내는데 쓰인다. 왜냐하면 이 방식은 계산에서의 오류를 방지하는데 효과적이기 때문이다.
3>부동 소숫점 방식
이 방식은 과학적 표기에 기초해있다. 이 방식은 숫자를 밑과 지수로 나타낸다.
예를들어 1234000은 1.234*10^6으로 나타내어진다. 여기서 지수는 원래 값을 얻기 위해 소숫점이 얼마나 움직여야할지를 가리킨다.
지수가 음수일때는 왼쪽, 양수일때는 오른쪽으로 소숫점이 이동한다
설정
트랙백
댓글
글
10진수 | 16진수 | 8진수 | 2진수 | ASCII | 10진수 | 16진수 | 8진수 | 2진수 | ASCII |
0 | 0×00 | 000 | 0000000 | NULL | 64 | 0×40 | 100 | 1000000 | @ |
1 | 0×01 | 001 | 0000001 | SOH | 65 | 0×41 | 101 | 1000001 | A |
2 | 0×02 | 002 | 0000010 | STX | 66 | 0×42 | 102 | 1000010 | B |
3 | 0×03 | 003 | 0000011 | ETX | 67 | 0×43 | 103 | 1000011 | C |
4 | 0×04 | 004 | 0000100 | EOT | 68 | 0×44 | 104 | 1000100 | D |
5 | 0×05 | 005 | 0000101 | ENQ | 69 | 0×45 | 105 | 1000101 | E |
6 | 0×06 | 006 | 0000110 | ACK | 70 | 0×46 | 106 | 1000110 | F |
7 | 0×07 | 007 | 0000111 | BEL | 71 | 0×47 | 107 | 1000111 | G |
8 | 0×08 | 010 | 0001000 | BS | 72 | 0×48 | 110 | 1001000 | H |
9 | 0×09 | 011 | 0001001 | HT | 73 | 0×49 | 111 | 1001001 | I |
10 | 0×0A | 012 | 0001010 | LF | 74 | 0×4A | 112 | 1001010 | J |
11 | 0×0B | 013 | 0001011 | VT | 75 | 0×4B | 113 | 1001011 | K |
12 | 0×0C | 014 | 0001100 | FF | 76 | 0×4C | 114 | 1001100 | L |
13 | 0×0D | 015 | 0001101 | CR | 77 | 0×4D | 115 | 1001101 | M |
14 | 0×0E | 016 | 0001110 | SO | 78 | 0×4E | 116 | 1001110 | N |
15 | 0×0F | 017 | 0001111 | SI | 79 | 0×4F | 117 | 1001111 | O |
16 | 0×10 | 020 | 0010000 | DLE | 80 | 0×50 | 120 | 1010000 | P |
17 | 0×11 | 021 | 0010001 | DC1 | 81 | 0×51 | 121 | 1010001 | Q |
18 | 0×12 | 022 | 0010010 | SC2 | 82 | 0×52 | 122 | 1010010 | R |
19 | 0×13 | 023 | 0010011 | SC3 | 83 | 0×53 | 123 | 1010011 | S |
20 | 0×14 | 024 | 0010100 | SC4 | 84 | 0×54 | 124 | 1010100 | T |
21 | 0×15 | 025 | 0010101 | NAK | 85 | 0×55 | 125 | 1010101 | U |
22 | 0×16 | 026 | 0010110 | SYN | 86 | 0×56 | 126 | 1010110 | V |
23 | 0×17 | 027 | 0010111 | ETB | 87 | 0×57 | 127 | 1010111 | W |
24 | 0×18 | 030 | 0011000 | CAN | 88 | 0×58 | 130 | 1011000 | X |
25 | 0×19 | 031 | 0011001 | EM | 89 | 0×59 | 131 | 1011001 | Y |
26 | 0×1A | 032 | 0011010 | SUB | 90 | 0×5A | 132 | 1011010 | Z |
27 | 0×1B | 033 | 0011011 | ESC | 91 | 0×5B | 133 | 1011011 | [ |
28 | 0×1C | 034 | 0011100 | FS | 92 | 0×5C | 134 | 1011100 | \ |
29 | 0×1D | 035 | 0011101 | GS | 93 | 0×5D | 135 | 1011101 | ] |
30 | 0×1E | 036 | 0011110 | RS | 94 | 0×5E | 136 | 1011110 | ^ |
31 | 0×1F | 037 | 0011111 | US | 95 | 0×5F | 137 | 1011111 | _ |
32 | 0×20 | 040 | 0100000 | SP | 96 | 0×60 | 140 | 1100000 | . |
33 | 0×21 | 041 | 0100001 | ! | 97 | 0×61 | 141 | 1100001 | a |
34 | 0×22 | 042 | 0100010 | " | 98 | 0×62 | 142 | 1100010 | b |
35 | 0×23 | 043 | 0100011 | # | 99 | 0×63 | 143 | 1100011 | c |
36 | 0×24 | 044 | 0100100 | $ | 100 | 0×64 | 144 | 1100100 | d |
37 | 0×25 | 045 | 0100101 | % | 101 | 0×65 | 145 | 1100101 | e |
38 | 0×26 | 046 | 0100110 | & | 102 | 0×66 | 146 | 1100110 | f |
39 | 0×27 | 047 | 0100111 | ' | 103 | 0×67 | 147 | 1100111 | g |
40 | 0×28 | 050 | 0101000 | ( | 104 | 0×68 | 150 | 1101000 | h |
41 | 0×29 | 051 | 0101001 | ) | 105 | 0×69 | 151 | 1101001 | i |
42 | 0×2A | 052 | 0101010 | * | 106 | 0×6A | 152 | 1101010 | j |
43 | 0×2B | 053 | 0101011 | + | 107 | 0×6B | 153 | 1101011 | k |
44 | 0×2C | 054 | 0101100 | ' | 108 | 0×6C | 154 | 1101100 | l |
45 | 0×2D | 055 | 0101101 | - | 109 | 0×6D | 155 | 1101101 | m |
46 | 0×2E | 056 | 0101110 | . | 110 | 0×6E | 156 | 1101110 | n |
47 | 0×2F | 057 | 0101111 | / | 111 | 0×6F | 157 | 1101111 | o |
48 | 0×30 | 060 | 0110000 | 0 | 112 | 0×70 | 160 | 1110000 | p |
49 | 0×31 | 061 | 0110001 | 1 | 113 | 0×71 | 161 | 1110001 | q |
50 | 0×32 | 062 | 0110010 | 2 | 114 | 0×72 | 162 | 1110010 | r |
51 | 0×33 | 063 | 0110011 | 3 | 115 | 0×73 | 163 | 1110011 | s |
52 | 0×34 | 064 | 0110100 | 4 | 116 | 0×74 | 164 | 1110100 | t |
53 | 0×35 | 065 | 0110101 | 5 | 117 | 0×75 | 165 | 1110101 | u |
54 | 0×36 | 066 | 0110110 | 6 | 118 | 0×76 | 166 | 1110110 | v |
55 | 0×37 | 067 | 0110111 | 7 | 119 | 0×77 | 167 | 1110111 | w |
56 | 0×38 | 070 | 0111000 | 8 | 120 | 0×78 | 170 | 1111000 | x |
57 | 0×39 | 071 | 0111001 | 9 | 121 | 0×79 | 171 | 1111001 | y |
58 | 0×3A | 072 | 0111010 | : | 122 | 0×7A | 172 | 1111010 | z |
59 | 0×3B | 073 | 0111011 | ; | 123 | 0×7B | 173 | 1111011 | { |
60 | 0×3C | 074 | 0111100 | < | 124 | 0×7C | 174 | 1111100 | | |
61 | 0×3D | 075 | 0111101 | = | 125 | 0×7D | 175 | 1111101 | } |
62 | 0×3E | 076 | 0111110 | > | 126 | 0×7E | 176 | 1111110 | ~ |
63 | 0×3F | 077 | 0111111 | ? | 127 | 0×7F | 177 | 1111111 | DEL |
설정
트랙백
댓글
글
NOP 아무것도 안한다
JE - Jump if equal 비교나 테스트의 결과가 같다면 점프
JNE 은 이거랑 만대로 생각하시면 됩니다.
Je는 Jump if equal 였죠 JNE은 N이 추가 되있네요 풀어보면 Jump if NOP equal 이네요
그럼 JNE 은 아시겠죠 ?
그럼 J는 Jump if 이므로 생략하겠습니다.
Jz Z는 제로입니다. 말그대로 왼쪽 인자의 값이 0이라면 점프입니다.
그럼 jNZ는 아시겟죠?
그럼 JL로 넘어시다
L은 LESS SINGED 왼쪽인자의 값이 오른쪽 인자의 값보단 작으면 점프 입니다.
JNL은 넘어가겠습니다.
JB 는 BELOW UNSIGNED 왼쪽 인자의 값이 오른쪽 인자의 값보다 작으면 점프
JNB 은 넘어값니다
JG 는 왼쪽 인자의 값이 오른쪽 인자의 값보다 크면 점프
JNG는 반대
jLE 왼쪽인자의값이 오른쪽 인자의 값보다 작거나 같으면 점프
JGE 이건 g네요 많이 안쓰니깐 JLE의 반대라고 설명하겠습니다 . 나머지는 차차 설명하겠습니다.
아래는 많이쓰는 어셈코드표입니다. 이건 꼭 외울필요는 없습니다.
JE 74 OF 0F84
JNE 75 OF 0F85
jmp eb
nop 90
일단은 이 4개만 설명하겠습니다.
출처 : 쿨소프트2.0
설정
트랙백
댓글
글
어셈블리를 시작하니 어렵게 설명하진 않겠습니다
명령어 대상오퍼랜드 소스오퍼랜드 이러한 구조를 가지고 있습니다.
MOV : 메모리나 레이스터의 값을 옴길때 쓰입니다.
POP :SP 레지스터를 조작하는 명령어로 스택의 데이터를 꺼냅니다.
dec 레지 1감소
inc: 레지 1증가
Add: 레지스터의 메모리의 값을 더할떄 쓰인다.
sub: 레지스터의 메모리의 값을 뺼떄 쓰인다.
Lea : 대상 오퍼랜드의 값을 오퍼랜드의 값으로 만듬
return: 돌아감
Nop:동작안함
Call :호출
cmp :비교
출처 : 쿨소프트2.0
설정
트랙백
댓글
글
파티션 분할/병합 프로그램
파티션 매직 8.0 한글판 정품버전
파티션매직 8.0 (Partition Magic 8.0) 사용법
파티션 크기 변경 및 이동하기
1. 파티션 매직을 실행하고 디스크 정보가 표시된 오른쪽 창에서 크기를 변경할 파티션을 선택한다.
만약 시스템 파일이 있는 부팅 드라이브에서 파티션을 잘못 옮기거나 변경하면
부팅이 되지 않을 수 있으니 주의한다.
2. 왼쪽의 ‘파티션 작업’ 메뉴에서 ‘파티션 크기 변경/이동’을 선택한다.
이 작업은 까다롭고 위험성이 높은 만큼 설명서를 잘 읽고 작업 내용을 숙지한 후 시작해야 한다.
3. ‘파티션 크기 조정/이동’ 창이 열리면 파티션 영역이 막대로 표시되어 나타난다.
먼저 크기를 줄이는 방법부터 알아보자.
막대 오른쪽의 화살표를 클릭해 커서 모양이 ‘↔’로 바뀌면 천천히 왼쪽으로 드래그한다.
그래프와 아래쪽의 상세 정보를 확인하면서 크기가 적당하다 싶으면 ‘확인’ 버튼을 누른다.
파티션을 옮길 때에는 마우스로 드래그하기만 하면 된다.
4. 설정한 내용이 오른쪽의 디스크 정보 화면에 나타난다.
줄어든 파티션 크기만큼 ‘할당되지 않음’으로 표시된 파티션 영역이 생겨났을 것이다.
5. 화면 위쪽의 그래프로 표시된 정보 영역에서 ‘할당되지 않음’으로 표시된 파티션을
마우스 오른쪽 버튼으로 클릭하고 나타나는 팝업 메뉴에서 ‘작성’을 선택한다.
6. 새로 만들 파티션의 크기와 레이블, 유형 등을 선택하고 ‘다음’을 클릭한다.
작성 유형은 ‘논리(권장)’를 선택하는 것이 무난하다.
7. 화면 위쪽의 그래프로 표시된 정보 영역에서 ‘할당되지 않음’으로 표시되었던 부분이
새로 설정한 파티션 정보로 변경되었으면 화면 왼쪽 하단에서 ‘적용’을 선택한다.
8. ‘변경 사항 적용’ 창이 열리면 ‘자세히’ 버튼을 누른다. 설정한 작업 내용이 정확한지
다시 한 번 확인하기 위한 과정이다.
9. 목록에서 현재 대기 중인 작업 목록을 확인한다. 설정이 제대로 되었으면 ‘닫기’를 클릭한다.
아직까지는 실제로 작업이 이루어진 것이 아니라, 작업 후의 결과를 미리 보여준 것에 불과하다.
다시 ‘변경 사항 적용’ 창으로 돌아가 ‘예’를 선택해야 비로소 작업이 완료된다.
10. 시스템을 재부팅한다는 안내 창이 열리면 다시 ‘예’를 선택한다.
11. PC가 다시 부팅되면서 앞서 지정한 작업이 수행된다. 파티션의 크기와
저장된 데이터의 용량에 따라 변경 내용과 이동 시간 등이 달라진다.
사용법 출처 : Tong - 남산님의 네트워크/운영체제/보안통
설정
트랙백
댓글
글
사용 방법
실행한뒤 우측 하단에 트레이아이콘이 추가 된지 확인한다.
설정을 원하는 창을 활성화 시킨다.
'항상 위'를 설정하고 싶다면 Shift + F2를 누른다.
'항상 위'를 해제하고 싶다면 Shift + F3를 누른다.
'화면크기, 위치'를 설정하고 싶다면 Shift + F4를 누른다.
'투명도'를 설정하고 싶다면 Shift + F5를 누른다.
RECENT COMMENT