gas

    0

    1답변

    저는 Jack Crenshaw의 "Let 's Build A Compiler"를 연구 중입니다. Motorola 680x0 명령어를 x86 GAS 구문으로 변환하고 있습니다. 변수 할당 중에 원하는 의미는 PC 상대 주소 지정을 사용하여 변수에 대한 참조를 만드는 것입니다 (적어도 Crenshaw가 수행 할 내용 임). , 이동 X (PC), x는 변수 이

    0

    1답변

    컴파일러가 내 C 코드에서 인라인 어셈블리를 매개 변수화하여 레지스터를 자동으로 선택하도록하고 싶습니다.하지만 몇 가지 문제가 있습니다. 누구가 잘못 될지 말해 줄 수 있습니까? 내가 주석 처리 한 코드를 사용하면 (% xmm0과의 제휴를 강요 함) 컴파일하여 예상 결과를 얻습니다. 또한 /tmp/ccJxmSbm.s: Assembler messages:

    1

    1답변

    MOD + R/M 필드의 변위가 최대로 부호있는 32 비트 정수라는 것을 알고 있습니다. 그러나 32 비트 서명에 비해 너무 큰 값을 전달할 때 일관성없는 동작을 보았습니다 (그러나 부호없는 32 비트에 대해서는 충분히 작음). 포인트 케이스 : .intel_syntax noprefix mov [eax + eax + 0xdeadbeef], al mov

    0

    1답변

    다음 라인이 movl을 사용하여 스택 포인터 아래에있는 데이터를 GCC에서 생성하는 이유를 이해할 수 없습니다. (full code) movl -4(%ebp), %eax # -4(%ebp) <- local variable 1 movl 8(%ebp), %edx # 8(%ebp) <- first parameter movl %edx, 8(%esp) #

    0

    1답변

    sprintf와 비슷한 기능을 쓰려고합니다. 나는 결과 문자열 (인자 % d)에 정수를 출력하기로되어 있습니다. 내 전략은 수를 10으로 나누고 나머지를 48 (ascii 오프셋) 추가 한 다음 스택에 밀어 넣고 지수가 0이 될 때까지 늘립니다. 그런 다음 스택에서 각 숫자를 팝하여 결과 문자열. 이것은 내 현재 코드 : %의 EDX가 (%의 ECX 그래서

    2

    3답변

    Possible duplicate exist 그러나이 문제를 비슷한 방법으로 적용 할 방법을 찾지 못했습니다. 반환 할 함수를 만들고 있는데, 정수는 x86 AT & T 어셈블리의 문자열입니다. 변수를 선언하는 코드는 resdes입니다. .data .align 4 resdes: .long 12 resdes 이제 (I을 올바르게 이해?) 내가

    1

    1답변

    내가 어셈블리에 인쇄해야 64 비트 정수를 가지고,하지만 난 32 비트 시스템에서 작업하고, 그래서 내 64 비트 정수를 두 개의 32 비트 레지스터에 저장하십시오. 정수의 상위 부분은 % edx에 저장되고 하위 부분은 % eax에 저장됩니다. 난 그냥 지속적으로 10 분할, 32 비트 정수에게 문제를 인쇄하지 않으며 나머지를 인쇄하는 방법을 알고있다. 또

    -1

    1답변

    저는 리눅스, 어셈블리 프로그래밍 (GAS) 및 영어에 대한 초보자입니다. 미안, 내가 뭔가 잘못 쓰는 경우. 나는 Google 번역이 나쁘지 않은 모두를 쓸 수있을만큼 도움이되기를 바랍니다. 어떤 라이브러리 (예 : printf())에서 함수를 호출하지 않고도 .data 섹션에 저장된 숫자 세트를 텍스트 파일에 쓰는 방법을 알고 싶습니다.이 작업은 어셈블

    0

    1답변

    여러 c 파일에서 어셈블리 파일을 생성하기 위해 gcc를 사용하고 있습니다. 생성 된 어셈블리 파일을 조립하기 위해 가스를 사용하려고하면 여러 파일에 정의 된 심볼을 찾기 때문에이 오류가 발생합니다. Error: symbol '.L???' is already defined 문서를 보면, .L은 파일이 다른 파일에 동일한 기호 이름을 발견하면 왜 가스를 불평

    1

    1답변

    Linux x86_64 (GAS 구문)의 asembler에 간단한 프로그램을 작성하고 있습니다. 나는 바이너리 시스템으로 코딩되고 텍스트 파일에 저장된 숫자를 읽어야한다. SYS_WRITE = 4 EXIT_SUCCESS = 0 SYS_READ = 3 SYS_OPEN = 5 .data BIN_LEN = 24 .comm BIN,