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 ...