x86 어셈블리에서 한 섹션에서 다른 섹션으로 무조건 점프를 수행하려면 어떻게해야합니까?조립 : 한 섹션에서 다른 섹션으로 건너 뛰기
예 :
.section .text
main: ...
jmp here
...
.section .another
here: ...
나는이 훨씬 뛰어 것 같다. 이걸 실행할 때 세그 폴트가 생겼어. 해결 방법은 없습니까?
x86 어셈블리에서 한 섹션에서 다른 섹션으로 무조건 점프를 수행하려면 어떻게해야합니까?조립 : 한 섹션에서 다른 섹션으로 건너 뛰기
예 :
.section .text
main: ...
jmp here
...
.section .another
here: ...
나는이 훨씬 뛰어 것 같다. 이걸 실행할 때 세그 폴트가 생겼어. 해결 방법은 없습니까?
지정하지 않았기 때문에 어떤 어셈블러 유형 (NASM, 가스, MASM, TASM)
당신이 어떤 세그먼트 것은하여 here
일부 알고있는 경우, 예를 들어, .section
부분은 코드 세그먼트 0x8이있는 경우, 당신은이 작업을 수행 할 수 있습니다 : 수
jmp 0x8:here
당신이 도움이 .. 세그먼트도 ... 다시 주행 거리가 어셈블러에 따라 달라집니다 사용을 지정하는 을
희망을 상수를 정의 할 수 있습니다 안부, 톰.
또 다른 방법은 여기를 참조하십시오. 스택에서 세그먼트를 누르고 스택의 레이블 주소를 누르고 http://stackoverflow.com/questions/1398034/inline-assembly와 같이 원거리 복귀를 실행하십시오. -jump-error – t0mm13b
해당 콜이없는 리턴을 발행하면 분기 예측기의 내부 스택이 엉망이 될 가능성이 있지만, 이는 함수 호출 성능과 관련이 있습니다. 원거리 전화에서 돌아 오려면 원거리 복귀를 사용해야하고, 그렇지 않으면 원거리 점프를 사용해야합니다. –
GAS에서 멀리뛰기를 어떻게 수행합니까? – TripShock
어떤 어셈블러입니까? –
죄송합니다. 나는 GAS를 사용하고있다. – TripShock