Perguntas com a tag "assembly"
1
Ajustar o ponteiro de pilha para empurrar arguements para funções
Normalmente quando escrevo assembly para 8051 chip. Eu uso os registradores R0-R7 para discussão antes de eu chamar funções.
mov r6, #6
mov r7, #2
lcall setpos
Eu estava interessado em fazer isso com o uso de pilha (ignorando o fato de que este po...
1
GDB mostra quebrado instrução de desvio de endereço
$ gdb --version
GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git
Eu estou depurar, com gdb e enfrentou algum estranho desvio de endereço. Eu tenho uma biblioteca compartilhada escrito em C++ com uma função de foo para desmanche da seguinte forma (o...
1
A maneira correta de inverter uma string substituindo a memória no endereço, não a criação de novos memória em MIPS Assembly
Eu tenho uma atribuição no meu Computador Arquitetura classe de onde devemos concluir um conjunto de tarefas. A última tarefa é a de criar uma sub-rotina que recebe uma cadeia de caracteres e reverte-lo. Nós não temos permissão para usar a seqüência ...
0
Como pode antecipada de BIOS de CHAMADAS? (follow-up)
Este é um seguimento Como pode antecipada de BIOS usa a CHAMADA de?, mesmo arquivo ROM, mesma configuração.
Graças a Brendan eu sei que, após um arranque a frio, o salto discutidas seriam tomadas e uma instrução call seria ignorada naquele momento. ...
0
é a certeza em que registrar argumentos e as variáveis são armazenadas?
Eu ainda estou incerto como registra estão sendo usados pelo montador
dizem que eu tenho um programa:
int main(int rdi, int rsi, int rdx) {
rdx = rdi;
return 0;
}
Seria isso na montagem de ser traduzido em:
movq %%rdx, %%rdi
ret rax;...
1
Por que o registrador eax mostrar como 0xccffffff no depurador depois de executar mov eax,0FFFFFFFFh
Instruções do meu iniciantes livro "Linguagem de Montagem Passo-a-Passo" tem
linha: mov eax,0FFFFFFFFh. Depois de acabado de carregar o programa no depurador de 'Insight', o valor de eax começa como 0 x 0, mas depois da linha de mov eax, 0FFFFFFFFh e...
0
Na assembleia, como faço para armazenar a entrada do scanf chamada?
input: .asciz "%%ld"...
subq $8, %%rsp
eaq -8(%%rbp), %%rsi
movq $input, %%rdi
movq $0, %%rax
call scanf
Eu quero armazenar o dado de entrada do scanf e modificá-lo e, em seguida, imprimi-lo usando
call printf
Como eu poderia abordar este prob...
0
Como posso misturar C e em linguagem assembly?
Eu tento carregar o IDT na memória em C e Assembly de código.
Eu acho que o problema é, talvez, o método de compilador.
Eu já tente de alguma pesquisa, mas eu acho que talvez eu tenha um outro problema. Por exemplo, eu tenho visto como a mistura de ...
0
MIPS se loop maior ou igual a
if ($t4 >= $5)
$t8 = $t8+1
Não tem certeza se está correto. Colocar isso em conjunto, com base em várias fontes. Parece simples, mas eu ainda estou aprendendo os fundamentos.
stl $t1, $t5, $t4
beq $t0, $zero, endLoop
addi $8, $8, 1
Referê...
0
No x86-64 é o C++ é a igualdade de seleção, "==", ou menor que, maior que "<", mais rápido ou eles têm o mesmo tempo de execução?
Eu quero entender o desempenho de igual "==" menos do que "<" ou maior que ">", no moderno x86-64 processadores. O que é mais rápido e porquê?
bool c_stack::isEmpty() {
//return top < 0;
return top == -1;
}
1
Muito Preso na sub-rotinas no BRAÇO
Eu estive trabalhando em um problema para o meu computador, arquiteto classe para 2 dias e agora de ter esgotado todos os meus recursos. Eu li o texto até que as palavras não fazem mais sentido. Eu tentei e tentei no meu emulador visual (visUAL), mas...
0
Pe32 Cabeçalho - DataDirectory tamanho do ponteiro
Eu tenho 2 perguntas:
O Pe32 cabeçalho consiste de muitos subheaders. Um deles é o cabeçalho opcional. MSDN diz que o último elemento de IMAGE_OPTIONAL_HEADER é um ponteiro para o primeiro IMAGE_DATA_DIRECTORY estrutura do executável. Quando eu olh...
1
Por que isto é equivalente a um lbu?
Temos o seguinte exercício:
A program begins with:
.data
Input:
.word 0xAABBCCDD
.text
addi $3, $0, Input
Then the following four instructions follow:
addi $4, $0, 16
lw $5, 0($3)
srav $5, $5, $4
andi $5, $5, 0xF...
1
Qual é o propósito do montador e tabela de símbolos? O que é um símbolo de endereço?
Do meu livro:
To produce the binary version of each instruction in the assembly language program, the assembler must determine the addresses corresponding to all labels. Assemblers keep track of labels used in branches and data transfer instructi...
3
Embalado Shuffle Bytes, a operação reversa
Precisa de um especialista em AVX:
dada a instrução para baralhar
VPSHUFB ymm1, ymm2, ymm3/m256
De acordo docs, este "Shuffle bytes em ymm2 de acordo com o conteúdo do ymm3/m256."
A minha pergunta é: é possível reverter a operação, em outras pala...
1
Normativa nasm - Winapi funções que não pop de seus parâmetros
Eu estava escrevendo um programa na normativa nasm e eu descobri que enquanto winapi funções como CreateProcessA ou GetModuleFileNameA pop seus argumentos da pilha depois de terem terminado, printf não está fazendo o que.
Há uma razão para isso? E m...
1
CS:APLICATIVO de exemplo usa idivq com dois operandos?
Estou lendo sobre a x86-64 (e montagem em geral) através do livro "sistemas de computador perspectiva de um programador"(3ª edição). O autor, em conformidade com outras fontes da web, afirma que idivq leva um operando apenas - assim como este reivind...
2
Em x64, o uso de "pop [RAX]", onde é o valor armazenado temporariamente?
Eu tenho encontrado respostas, explicando que o direct memory-a memória de cópia não é possível em x 86 plataformas sem o valor que está sendo armazenado em algum lugar no meio.
mov rax,[RSI]
mov [RDI],rax
Eu faço uso pesado de 64bit escreve de me...
0
O que cmpq comparar?
mistério tem esta função de assinatura:
int mystery(char *, int);
Este é o mistério função código de assembly:
mystery:
movl $0, %%eax ;set eax to 0
leaq (%%rdi, %%rsi), %%rcx ; rcx = rdi + rsi
loop:
...
2
Como UEFI boot de inicialização do modo de fluxos?
A expressão dessa questão é o mesmo como o Que é UEFI da sequência de arranque?, mas não parece que eu quero. Eu gostaria de saber o UEFI sequência na instrução perspectiva.
Por exemplo, no caso da BIOS de inicialização de modo simplificado de moda,...
0
Estouro de Buffer: overrwrite CH
Eu tenho um programa vulnerável a buffer overflow. A função que é vulnerável leva de 2 argumentos. O primeiro é um padrão de 4 bytes. Para o segundo, no entanto, o programa executa as seguintes:
xor ch, 0
...
cmp dword ptr [ebp+10h], 0F00DB4BE
...
2
Como eu posso passar o resultado de um método de volta para a pilha de programação em assembly?
Este é o código de assembly:
ldc 5 // a
ldc 12 // b
bsr sumsquare
ajs -2 // delete parameters
ldr RR // result on the stack
stl 1 // store in a variable
....
sumsquare:
link 1 // 1 local variable
ldl -3 // a
...
0
Colocando núcleo de 0 em não-seguras do mundo
Eu estou usando uma placa customizada, tendo zynq-7000. Estou executando duas aplicativo em ambos os núcleos. Eu quero colocar cpu0 em não seguros do mundo e cpu1 no seguro do mundo. Como Cpu1 já está no mundo seguro, eu estou tentando fazer Cpu0 não...
2
GDB mostra incorreto endereço de salto em PLT seção
Eu escrevi o seguinte exemplo para ter uma idéia do PLT/TENHO seção.
A biblioteca partilhada libshar código:
shared.h
int sum(int a, int b);
shared.c
#include "shared.h"
int sum(int a, int b){
return a + b;
}
O executável bin_shared cód...
0
Montagem o que faz o número depois de cadeia média
O que faz o número 2, depois de str1" significa?
org 100h
jmp iniciar
str1 db '012345 abcdefg', 2
início: lea bx, str1
mov ax, 0
compare: cmp byte ptr [bx], 0
je feito
inc ax
inc bx
jmp comparar
...