Resultados da pesquisa a pedido "x86"

1 a resposta

Como definir o ponto de interrupção usando o GDB para montagem x86 quando nenhuma informação de símbolo está presente? [duplicado

Esta pergunta já tem uma resposta aqui: Parando na primeira instrução de código de máquina no GDB [/questions/10483544/stopping-at-the-first-machine-code-instruction-in-gdb] 5 respostasComo definir um ponto de interrupção usando o código de ...

2 a resposta

aiz @Cube na FPU x87 usando o método Newton-Raphson

Estou tentando escrever um programa de montagem usando o processador 8086 que encontrará a raiz do cubo de um número. Obviamente, estou usando pontos flutuantes. Algoritmo baseado em Método ...

3 a resposta

Como imprimir um número inteiro na Programação em nível de montagem sem printf da biblioteca

Alguém pode me dizer opurely assembly código para exibir o valor em um registro em formato decimal? Por favor, não sugira usar o printf hack e compile com o gcc. Descrição Bem, eu fiz algumas pesquisas e algumas experiências com o NASM e ...

3 a resposta

sando o LEA em valores que não são endereços / ponteiro

Eu estava tentando entender como a Instrução de Computação de Endereço funciona, especialmente comleaq comando. Então fico confuso quando vejo exemplos usandoleaq para fazer cálculos aritméticos. Por exemplo, o seguinte código C, long m12(long ...

2 a resposta

sando o registro do ponteiro base no C ++ inline a

Eu quero poder usar o registro do ponteiro base %rbp) dentro do asm inline. Um exemplo disso é o seguinte: void Foo(int &x) { asm volatile ("pushq %%rbp;" // 'prologue' "movq %%rsp, %%rbp;" // 'prologue' "subq $12, %%rsp;" // make room "movl $5, ...

2 a resposta

E se não houver uma declaração de retorno em um bloco de código CHAMADO nos programas de montagem

O que acontece se eu disser 'ligar' em vez de pular? Como não há declaração de retorno escrita, o controle passa apenas para a próxima linha abaixo ou ainda é retornado para a linha após a chamada? start: mov $0, %eax jmp two one: mov $1, %eax ...

6 a resposta

Assembly ADC (adicionar com transporte) para C ++

Há uma instrução de montagemADC. Descobri que isso significa "Adicionar com transporte". Mas eu não sei o queaquel significa. Ou como escrever esta instrução em C ++. E eu sei que não é o mesmo queADD. Portanto, fazer um somatório simples não ...

2 a resposta

O código gerado pelo compilador C Minúsculo C emite NOPs e JMPs extras (desnecessários)

Alguém pode explicar por que esse código: #include <stdio.h> int main() { return 0; } quando compilado com tcc usandotcc code.c produz este asm: 00401000 |. 55 PUSH EBP 00401001 |. 89E5 MOV EBP,ESP 00401003 |. 81EC 00000000 SUB ESP,0 00401009 ...

1 a resposta

ual registro de segmento é usado por padrã

Estudo sobre arquitetura de computadores no Manual da Intel. O que eu entendo é que as instruções que fornecemos são endereços lógicos que consistem em um seletor de segmentos e um deslocamento. É basicamenteCS register<<4 + offset. OSegment ...

3 a resposta

80x86 asm de 16 bits: lea cx, [cx * 8 + cx] causa erro no NASM (compilação de arquivo .com)

O erro que o NASM dá (apesar do meu sistema operacional) é "endereço efetivo inválido" Agora eu já vi muitos exemplos de como usar o LEA e acho que acertou, mas meu NASM não gosta. Eu tenteilea cx, [cx+9] e funcionou;lea cx, [bx+cx] ...