누구나 ORG 지침에 대한 포괄적 인 설명을 제공 할 수 있습니까?
어셈블리 작성 응용 프로그램에서 언제 그리고 왜 사용됩니까?ORG Assembly Instruction의 기능은 무엇입니까?
x86 또는 AMD64에서 Nasm을 사용하십시오.
누구나 ORG 지침에 대한 포괄적 인 설명을 제공 할 수 있습니까?
어셈블리 작성 응용 프로그램에서 언제 그리고 왜 사용됩니까?ORG Assembly Instruction의 기능은 무엇입니까?
x86 또는 AMD64에서 Nasm을 사용하십시오.
ORG는 어셈블러를 설정하는 데 사용됩니다 위치 카운터. 이것은 링크시로드 주소로 변환되거나 변환되지 않을 수 있습니다. 절대 주소를 정의하는 데 사용할 수 있습니다 (예 : 고정 주소에 있어야 할 수도있는 인터럽트 벡터와 같은 것을 정의 할 때 또는 패딩을 도입하거나 다음 코드에 대한 특정 정렬을 생성하는 데 사용할 수 있습니다.
'ORG' 지시어의 의미는 어셈블러에 따라 다를 수 있음에 유의하십시오. 예를 들어 Paul이 언급 한 바와 같이 패딩을 생성하기 위해이 패딩을 사용하면 MASM에서 작동하지만 NASM에서는 작동하지 않습니다 (http://developer.apple.com/mac/library/documentation/DeveloperTools/nasm/nasmdo10.html#section-10.1). .삼). – bcat
'ORG '는 "origin"의 약자입니다. – starblue
@starblue 이해하기 좋은 보충물 –
바이너리 프로그램을로드 할 메모리 위치입니다 (있는 경우).
저는 org를 사용하지 않고 하드웨어에 곧바로 opcode/value를 내 보냅니다. 항상 ax에 값을 저장하고 bx, cx, dx 사이에 값을 전송할 수 있습니다. 내가 처음 실행하기 전에 메모리로 전송에 대해 걱정할 필요없이 오피/값을 요리하는 내 자신의 어셈블러를 쓰고 있어요
,
그것 때문에 훨씬 더 빨리 그들이 당하고처럼 그 자리에서 옵 코드를 실행하려면 메모리에 캐시하려고 시도하지 않고 스택에 과부하가 걸려 CPU가 소모 될 수 있습니다.
RAM 메모리의 오프셋으로 프로그램을 0x00000000h에서로드하려고합니다. ORG 100h = 내 바이너리 코드를 64 비트 컴퓨터에서 0x00000000h + 100h 또는 0x00000100h 위치의 메모리에 저장합니다. – Jason
첫 번째 문장이 정확합니다. 나머지는 나에게 넌센스처럼 보인다. 값을 저장하기 위해 레지스터 나 메모리를 사용하는 것은 'org'의 사용과 아무 관련이 없습니다. 그리고 여러분은 cpu의 명령어 포인터가 항상 _memory_ 위치를 가리키고 있다는 사실을 알고 있습니까? 그리고 CPU는 항상 메모리 또는 캐시에서 opcode를 읽습니다. – hirschhornsalz
ORG는 현재 세그먼트와 관련된 코드/데이터의 다음 부분을 넣을 위치를 나타냅니다.
최종 주소가 어셈블리 시간에 알려지지 않은 세그먼트에 따라 달라 지므로 고정 주소로 사용하는 것은 유용하지 않습니다.
During the assemble time ORG directive resets the MLC (memory location counter) to the address specified in the ORG directive.
구문 : ORG 참고 : + 부호 없음 절대 값 또는 심볼 또는 심볼 일 수있다.
예 : - ORG 지시문을 사용하는 조립 목록이 필요합니다.
위치
0000A4 00 89 TAB DC 256AL1 - 240
000,194 F0F1F2F3F4F5F6F7 91 DC C'1234567 '는 TAB 심볼 위의 여기
ORG는 프로그램을로드 할 것으로 예상되는 위치를 설정합니다. 이 프로그램을 특정 위치에로드하면 메모리 주소가 잘못되어 문제가 발생할 수 있습니다.
정보가 이미 언급되었으므로 추가 답변이 필요하지 않습니다. 그 외에도 일반적인 경우와는 거리가 멀다. – usr2564301
힌트 : 널리 사용되는 하나 이상의 CPU 아키텍처와 이러한 아키텍처 중 적어도 일부에 대해 둘 이상의 어셈블러가 있습니다. 어떤 기계어에 대한 어셈블러를 지정하면 더 유용 할 수 있습니다. –
Nasm for x86 and amd64 – sepisoad