난 왼쪽으로 이동하고 바이트를 추가하려면 제로 128 비트 레지스터가 있습니다. 나는 다음과 같이 그것을 바꿀 수있다 : pslldq xmm0, 1
...하지만 지금은 빈 공간에 알을 복사하고 싶다. 예 : or xmm0, al
물론 작동하지 않습니다. 나는 영향을받은 가장 낮은 8 비트 만 원한다. 이것은 레지스터의 채우기에 연속적인 값인 al이
linux에서 기본 어셈블러는 "as"입니다. 나는 gdb가 AT & T와 인텔 구문을 사용하여 디스 어셈블리를 지원한다는 것을 알고있다. 내 질문은 "내가"알고있는 것처럼 & T 형식의 Intel 형식을 지원합니까? 예 : 나는 .global _start
_start:
mov ax,0
그런 다음 "로" as b.s
b.s: Assembler me
을 가끔 뭔가의 배열을 반복하는이 패턴을 사용 mov [rsp+.r12], r12 ; Choose a register that calls inside the loop won't modify
mov r12, -1
.i:
inc r12
cmp r12, [rbp-.array_size]
je .end_i
; ... p
물리 스위치를 사용하여 수동으로 8 비트 PC에서 video을 보았습니다. 투입된 프로그램이었다 지침에서 데이터를 분할 플래그를이 없기 때문에 내가 알고 싶은 무엇 MAIN:
0000 0001 0100 # 0 = LDA [4]
0001 0010 0101 # 1 = ADD [5]
0010 0101 0000 # 2 = OUT
Thumb-2 코드에서는 대부분의 명령어에서 레지스터 8-15를 사용할 수 없지만 ARM 코드에서는 가능합니다. [email protected]:~/ctests$ arm-linux-gnueabihf-as -Wall -o high.o high.s
ARM GAS high.s page 1
1 .syntax unified
나는 조립하여 다음 코드 나는 문제가 무엇인지 모르는 all:
nasm -f elf64 -o asm.o asm.s
ld asm.o -o asm
rm asm.o
을 다음과 같이 Segmentation fault (core dumped) section .text
global _start
_start:
mov eax,
프로세스가 모든 RAM에 액세스 할 수 있습니까? 아니면 CPU가 커널이 결정한 특정 부분을 프로세스에 제공 할 수 있습니까? 사용자 공간에서 실행되는 프로세스는 변경할 수 없습니까? 다른 말로하면 - 하드웨어로 샌드 박스 처리되는 프로세스입니까, 아니면 아무 것도 할 수 있지만 OS가 모니터링합니까? 편집 내가이 너무 광범위하다는 의견에 이야기 해요, 그
저는 어셈블러에서 새로 왔으며 수행자에게 이름을 입력하고 '안녕하세요 이름'답변과 같은 간단한 작업을 시도합니다. Sofar 나는이 변수를 rdx 레지스터에 넣고 디스플레이에 표시하는 것보다 선언되지 않은 변수에 입력을 읽고 할당합니다. 문제는 tekst2를 변수를 rdx에 넣는 방법을 모른다는 것입니다. 이 가정 section .text
sec
이 두 질문을 별도의 줄에 인쇄하는 방법을 알 수 없습니다. 어떤 도움을 주셔서 감사합니다! 지금까지이게 내가 가진 것이고 모두 한 줄에 인쇄합니다. .data
my_string: .asciiz "What is your course score? 0-100"
my_string2: .asciiz "What is the curve value? 2-8"
## Question:
## Swap each pair of elements in
## the string "chararray" and
## print the resulting string.
## There will always be an even number
## of characters in "chararray".
##
## Output f