«assembly» 태그된 질문

어셈블리 언어 (asm) 프로그래밍 질문 사용중인 프로세서 및 / 또는 명령어 세트 및 어셈블러와 함께 태그를 지정하십시오. 경고 : .NET 어셈블리의 경우 [.net-assembly] 태그를 대신 사용하십시오. Java ASM의 경우 [java-bytecode-asm] 태그를 대신 사용하십시오.

5
정수 나누기를 구현할 때 GCC가 왜 이상한 수의 곱셈을 사용합니까?
나는에 대해 읽어 봤는데 div및 mul조립 작업, 나는 C에서 간단한 프로그램을 작성하여 행동을보기로 결정했다 : 파일 division.c #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j); return 0; } 그리고 다음을 사용하여 어셈블리 언어 코드를 생성합니다. gcc -S division.c -O0 -masm=intel …


8
기본 포인터와 스택 포인터는 정확히 무엇입니까? 그들은 무엇을 지적합니까?
DrawSquare ()가 DrawLine ()을 호출하는 Wikipedia에서 온 이 예제를 사용 하면 , 이 다이어그램은 맨 아래에 높은 주소가 있고 맨 위에는 낮은 주소가 있습니다. 사람이 나를 설명 무엇을 할 수 ebp와 esp이러한 맥락에있다? 내가 본 것에서 스택 포인터는 항상 스택의 상단을 가리키고 기본 포인터는 현재 함수의 시작을 가리키는 것이라고 말하고 …
225 c++  c  assembly  x86 

4
왜 쓸모없는 MOV 명령어를 도입하면 x86_64 어셈블리에서 타이트한 루프가 빨라 집니까?
배경: 어셈블리 언어가 내장 된 일부 파스칼 코드를 최적화하는 동안 불필요한 MOV명령을 발견 하고 제거했습니다. 놀랍게도 불필요한 명령을 제거하면 프로그램 속도 가 느려졌습니다 . 임의의 쓸모없는 MOV명령어 를 추가 하면 성능 이 더욱 향상됩니다 . 효과는 불규칙하며 실행 순서에 따라 변경 됩니다. 한 줄로 위나 아래로 같은 정크 명령이 바뀌면 …

30
왜 의회에서 작성된 프로그램이 더 자주 작성되지 않습니까? [닫은]
현재로서는이 질문이 Q & A 형식에 적합하지 않습니다. 답변, 사실, 참고 자료 또는 전문 지식을 통해 답변이 뒷받침 될 것으로 예상되지만이 질문은 토론, 논쟁, 여론 조사 또는 광범위한 토론을 요구할 것입니다. 이 질문을 개선하고 다시 열 수 있다고 생각 되면 도움말 센터 를 방문하여 안내를 받으십시오 . 휴일 칠년 전에 …

24
리버스 엔지니어링으로부터 실행 파일을 보호 하시겠습니까?
C / C ++ 코드를 디스 어셈블리 및 리버스 엔지니어링으로부터 보호하는 방법을 고민해 왔습니다. 일반적으로 나는이 행동을 내 코드에서 결코 용인하지 않을 것이다. 그러나 내가 작업했던 현재 프로토콜은 다양한 사람들의 보안을 위해 검사되거나 이해되어서는 안됩니다. 이제 이것은 나에게 새로운 주제이며, 인터넷은 리버스 엔지니어링 을 방지하는 데 실제로 유용 하지는 않지만 …
210 c++  c  obfuscation  assembly 

3
왜 GCC는 거의 동일한 C 코드에 대해 이렇게 완전히 다른 어셈블리를 생성합니까?
최적화 된 ftol함수를 작성하는 동안 에서 매우 이상한 동작을 발견했습니다 GCC 4.6.1. 먼저 코드를 보여 드리겠습니다 (명확하게하기 위해 차이점을 표시했습니다). fast_trunc_one, C : int fast_trunc_one(int i) { int mantissa, exponent, sign, r; mantissa = (i & 0x07fffff) | 0x800000; exponent = 150 - ((i >> 23) & 0xff); sign = …


7
GDB에서 현재 어셈블리 명령어 표시
GDB에서 어셈블리 수준 디버깅을하고 있습니다. 현재 소스 라인을 표시하는 것과 같은 방식으로 GDB가 현재 어셈블리 명령을 표시하는 방법이 있습니까? 모든 명령 후 기본 출력은 다음과 같습니다. 0x0001433f 990 Foo::bar(p); 이것은 현재 명령의 주소를 제공하지만 disassemble현재 실행중인 명령을 보려면 출력을 계속 참조해야합니다 .
179 assembly  gdb 

13
num ++가 'int num'의 원자가 될 수 있습니까?
일반적 속 int num, num++(나 ++num), 판독 - 수정 - 기록 동작으로, 인 원자 없다 . 그러나 종종 GCC 와 같은 컴파일러 가 다음 코드를 생성하는 것을 종종 볼 수 있습니다 ( here 시도 ). num++하나의 명령에 해당하는 5 번 라인 이이 경우에 num++ 원자 라고 결론 지을 수 있습니까? …


1
ARM 칩에 이름에 Javascript가 포함 된 명령어 (FJCVTZS)가있는 이유는 무엇입니까?
FJCVTZS 는 "Floating-point Javascript Convert to Signed fixed-point, rounding into zero"입니다. Arm v8.3-A 칩 이상에서 지원됩니다. 이상합니다. JavaScript가 베어 메탈에 너무 가깝다고 기대하지 않기 때문입니다. 명령이 수행하는 작업에 대한 설명은 찾을 수 있지만 왜 존재하는지는 알 수 없습니다. 이 스레드 는 "JS에 정수 유형이 없음을 의미하기 때문에 단일 명령어로 존재합니다. …
148 javascript  assembly  arm 

13
일상적인 기계는 어떻게 프로그래밍됩니까?
일상의 기계 (어플라이언스, 디지털 시계 등과 같은 컴퓨터 및 모바일 장치는 그렇게 많이 사용되지 않음)는 어떻게 프로그래밍됩니까? 코카콜라 자동 판매기의 프로그래밍에는 어떤 코드가 있습니까? 커피 메이커가 미리 프로그램 된 시간을 어떻게 받아들이고 나중에 시간이 지나면 커피 포트를 끓이기 시작합니까? 이러한 종류의 컴퓨터에는 운영 체제가 있습니까? 아니면 더 기본적인 것입니까? 어셈블리, …


7
이 milw0rm 힙 스프레이 익스플로잇은 어떻게 작동합니까?
나는 일반적으로 JavaScript 코드를 읽는 데 어려움이 없지만이 코드는 논리를 알 수 없습니다. 이 코드는 4 일 전에 게시 된 악용 코드입니다. 당신은 그것을 찾을 수 있습니다milw0rm . 코드는 다음과 같습니다. <html> <div id="replace">x</div> <script> // windows/exec - 148 bytes // http://www.metasploit.com // Encoder: x86/shikata_ga_nai // EXITFUNC=process, CMD=calc.exe var shellcode …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.