ASM 실행 흐름을 해석하는 방법을 모르겠습니다. 지금까지 살펴본 모든 파일에는 ASM 파일 내의 레이블에 대한 명시적인 점프 (Intel x86 AT & T 구문, 즉 jmp 또는 jl)가있었습니다. 내 질문 : 다른 레이블로 이동하지 않고 레이블의 끝에 도달하면 어떻게됩니까? 실행이 다음 레이블로 계속됩니까? 예 : foo:
opcodes
나는 라인이 일부 NASM 파일이 : b_print_newline equ 0x0000000000100040
bmdev.asm을 포함 파일 : %INCLUDE "bmdev.asm"
bmdev.asm 파일은 다음과 같은 EQU 지시어를 가지고 그런 다음 해당 항목을 호출 할 수 있습니다. 나는. call b_print_newline
GAS로 변환
현재 시스템에서 이전 프로젝트를 컴파일하는 중입니다. 나는이 오래된 프로젝트가 GCC/GAS의 오래된 (2.x) 버전을 사용했기 때문에 현재 버전으로 컴파일 할 수 있도록 정리해야한다는 것을 알고있다. 문제 코드 : __get_flags:
pushfl
popl %eax
ret
gaspushfl이 명령 아니라고 불평. 내가 읽은
을 사용하여 컴파일 된 객체 파일이 (어셈블러 코드에서)입니다. 내가 STEPI (또는 nexti는) GDB 0x0 주소에서 메모리 액세스에 대해 불평하려고 할 때 그것이 LD를 사용하여 연결합니다. gcc을 사용하여 링크하면 모두 정상입니다. 나는이 문제를 추측하고 은 GCC의 연결 결과에 비해 적은 수의 섹션을 생성 LD에 의해 발생합니다. gdb를보다
컴파일러 프로젝트의 일부로 부동 소수점 값을 비교하기 위해 x86 용 GNU 어셈블러 코드를 작성해야합니다. 이 작업을 수행하는 방법에 대한 리소스를 찾으려고 노력했으며 다음과 같이 작동하는 것으로 이해합니다. 비교할 값이 부동 소수점 스택의 유일한 값이라고 가정하면 fcomi 명령은 값을 설정하고 CPU 플래그를 설정하여 je, jne, jl, ... 명
저는 GNU를 사용하여 ARM Cortex-M3 기반 마이크로 컨트롤러 (Thumb 2 명령어 세트) 용 어셈블리 프로그램을 만들고 있습니다. 일부 예제 코드에서 나는 ELF 지시어라고 이해하는 .size, .section 및 .type과 같은 지시문을 찾습니다. 예를 들어 : - 일반적으로 어느 오브젝트 % (? 데이터를 의미 함) 또는 % 함수 .sec
4096 (메모리 페이지의 주소와 일치하는) 변수의 주소를 가져오고 싶습니다. 는 x86 어셈블러 결과에서이 파일을 컴파일하려고 .data
v: .zero 0x100
vpage: .long v & 0xfffff000
: 이것은 내가 (V 변수이며 vpage이 페이지의 주소를 포함한다)이 보이는 짓을 오프라인으로 계산 될 수있는 일을하
사용자가 최대 배열 크기로 입력 한 프로그램을 만들어야 만 사용자가 그 크기의 배열을 만들 수 있습니다. 그 값을 최대 1000 개의 배열 항목 (모든 int)으로 버퍼링해야합니다. 그러면 배열과 출력에 선택 정렬을 실행해야합니다. IBM 웹 사이트에서 다음 선택 정렬을 발견했습니다. .section .data
array:
.byte