Resultados da pesquisa a pedido "assembly"

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

3 a resposta

OsDev instruções syscall / sysret e sysenter / sysexit ativando

Estou criando um sistema operacional de 32 bits na montage Configurei o IDT e estou lidando com o programa interruptus através deint instrução. Como posso ativar osyscall esysenter instruções e como posso lidar com elas / devolve É verdade ...

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

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

1 a resposta

ASM x64 scanf printf duplo, GAS

Não consigo entender por que esse código não está funcionando para mim. Preciso usar a função scanf para double e, em seguida, printf para o mesmo double. Ao usar este código, os resultados não são bons. O que vejo são caracteres ...

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

13 a resposta

Can num++ be atomic for 'int num'

Em geral, paraint num, num++ (ou++num), como uma operação de leitura-modificação-gravação, énot atomic. Mas muitas vezes vejo compiladores, por exemplo GCC [https://en.wikipedia.org/wiki/GNU_Compiler_Collection], gere o seguinte código para ele ...

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

5 a resposta

Como acessar uma matriz de caracteres e alterar letras minúsculas para maiúsculas e vice-versa

Atualmente, estou trabalhando em um projeto de classe para a Structured Computer Organization usando um processador x86. O valor que estou acessando é um caractere de 1 byte, mas não sei como compará-lo com maiúsculas. Eles disseram usar uma ...