Microsoft MVP성태의 닷넷 이야기
디버깅 기술: 162. x86/x64의 기계어 코드 최대 길이 [링크 복사], [링크+제목 복사],
조회: 18503
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 2개 있습니다.)

x86/x64의 기계어 코드 최대 길이

궁금해서 찾아본 것인데,

x86_64 ASM - maximum bytes for an instruction?
; https://stackoverflow.com/questions/14698350/x86-64-asm-maximum-bytes-for-an-instruction

2.3.11 AVX Instruction Length
The maximum length of an Intel 64 and IA-32 instruction remains 15 bytes.

x86/x64 모두 15 바이트가 최대 길이라고 합니다. 실제로 다음의 글에 보면,

Longest x86 Instruction
; https://web.archive.org/web/20131109063453/https://www.onlinedisassembler.com/blog/?p=23

예제가 하나 나옵니다. ^^

lock add DWORD PTR ds:[esi+ecx*4+0x12345678],0xefcdab89

==> 67 66 f0 3e 81 84 8e 78 56 34 12 89 ab cd ef

이와 함께 우연히 발견한 CLR의 코드가 재미있습니다. ^^

clr!JIT_MonEnter:
00007fff`8b0a26b0 33d2            xor     edx,edx
00007fff`8b0a26b2 6666666666660f1f840000000000 nop word ptr [rax+rax]

nop 코드인데 "word ptr" 및 레지스터 연산을 통한 간접 주소까지 합해 14바이트입니다. 유사한 코드로 x86에서는 NOP 코드가 9바이트까지 길어질 수 있는 것 같습니다. ^^

[x86 환경]
66 NOP DWORD ptr [EAX + EAX*1 + 00000000H]

==> 66 0F 1F 84 00 00 00 00 00H

1바이트 nop을 n번 반복해도 되겠지만. ^^




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 2/27/2020]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 91  92  [93]  94  95  96  97  98  99  100  101  102  103  104  105  ...
NoWriterDateCnt.TitleFile(s)
11610정성태7/15/201817383Graphics: 5. Unity로 실습하는 Shader (3) - 고로 셰이딩(gouraud shading) + 퐁 모델(Phong model) + Texture
11609정성태7/15/201820380Graphics: 4. Unity로 실습하는 Shader (2) - 고로 셰이딩(gouraud shading) + 퐁 모델(Phong model)
11608정성태7/15/201824948Graphics: 3. Unity로 실습하는 Shader (1) - 컬러 반전 및 상하/좌우 뒤집기
11607정성태7/14/201825291Graphics: 2. Unity로 실습하는 Shader [1]
11606정성태7/13/201825931사물인터넷: 19. PC에 연결해 동작하는 자신만의 USB 장치 만들어 보기파일 다운로드1
11605정성태7/13/201821727사물인터넷: 18. New NodeMCU v3 아두이노 호환 보드의 내장 LED 및 입력 핀 사용법 [1]파일 다운로드1
11604정성태7/12/201820827Math: 47. GeoGebra 기하 (24) - 정다각형파일 다운로드1
11603정성태7/12/201816907Math: 46. GeoGebra 기하 (23) - sqrt(n) 제곱근파일 다운로드1
11602정성태7/11/201817070Math: 45. GeoGebra 기하 (22) - 반전기하학의 원에 관한 반사변환파일 다운로드1
11601정성태7/11/201819847Math: 44. GeoGebra 기하 (21) - 반전기하학의 직선 및 원에 관한 반사변환파일 다운로드1
11600정성태7/10/201818298Math: 43. GeoGebra 기하 (20) - 세 점을 지나는 원파일 다운로드1
11599정성태7/10/201817609Math: 42. GeoGebra 기하 (19) - 두 원의 안과 밖으로 접하는 직선파일 다운로드1
11598정성태7/10/201819486Windows: 147. 시스템 복구 디스크를 USB 디스크에 만드는 방법
11597정성태7/10/201821590사물인터넷: 17. Thinary Electronic - ATmega328PB 아두이노 호환 보드의 개발 환경 구성
11596정성태7/10/201819544기타: 72. 과거의 용어 설명 - OWIN
11595정성태7/10/201825298사물인터넷: 16. New NodeMCU v3 아두이노 호환 보드의 기본 개발 환경 구성
11594정성태7/8/201819678Math: 41. GeoGebra 기하 (18) - 원의 중심 및 접선파일 다운로드1
11593정성태7/8/201818675Math: 40. GeoGebra 기하 (17) - 각의 복사파일 다운로드1
11591정성태7/7/201818032Math: 39. GeoGebra 기하 (16) - 삼각형의 방심과 방접원파일 다운로드1
11590정성태7/7/201817594Math: 38. GeoGebra 기하 (15) - 삼각형의 수심파일 다운로드1
11589정성태7/7/201817860.NET Framework: 787. object로 형변환된 인스턴스를 원래의 타입 인자로 제네릭 메서드를 호출하는 방법 [2]파일 다운로드1
11588정성태7/7/201819325디버깅 기술: 116. windbg 분석 사례 - ASP.NET 웹 응용 프로그램의 CPU 100% 현상 (3)
11587정성태7/5/201818919.NET Framework: 786. ASP.NET - HttpCookieCollection을 다중 스레드에서 사용할 경우 무한 루프 현상
11586정성태7/5/201818115Math: 37. GeoGebra 기하 (14) - 삼각형의 무게 중심파일 다운로드1
11585정성태7/5/201818279Math: 36. GeoGebra 기하 (13) - 삼각형의 외심과 외접하는 원파일 다운로드1
11584정성태7/5/201818266Math: 35. GeoGebra 기하 (12) - 삼각형의 내심과 내접하는 원파일 다운로드1
... 91  92  [93]  94  95  96  97  98  99  100  101  102  103  104  105  ...