𝖂𝖎ƙ𝖎𝖊

Código de máquina: mudanças entre as edições

imported>!Silent
m (-predef depreciada.)
(texto trocado por 'Todo computador possui um conjunto de -d 0 100 0E3D:0000 CD 20 FF 9F {{Esboço-informática}} {{Portal3|Tecnologias de informação}} {{DEFAULTSORT:Codigo Maquina}} Ca...')
Linha 1: Linha 1:
Todo [[computador]] possui um conjunto de instruções que seu processador é capaz de executar. Essas instruções, chamadas de '''código de máquina''', são representadas por sequências de [[bit]]s, normalmente limitadas pelo número de bits do registrador principal da [[CPU]]. Esse código é chamado de código binário. São formados por 0 e 1.<ref>[http://www.portalsaofrancisco.com.br/alfa/historia-do-computador/codigo-de-maquina.php Código de máquina definição - Colégio São Francisco]</ref>
Todo [[computador]] possui um conjunto de
 
As instruções correspondem a sequências muito simples de operações, como transferir um dado em memória para a CPU ou somar dois valores e são normalmente interpretadas por [[microcódigo]].
 
Um programa em '''código de máquina''' consiste de uma sequência de números que significam uma sequência de instruções a serem executadas.
É normal a representação da linguagem de máquina por meio de números ([[opcodes]]) constantes e variáveis em [[Sistema binário (matemática)|sistema binário]] ou [[sistema hexadecimal]]. Alguns computadores também têm seu opcodes representados no [[sistema octal]].
 
Microprocessadores têm, normalmente, seus códigos de operação como múltiplos de 2, 8 e 16, pois usam arquiteturas com [[registradores]] de [[8 bit|8]], [[16 bit|16]], [[32 bit|32]], [[64 bit|64]] ou [[128 bit]]s em [[2006]]. Porém, existem máquinas com registradores de tamanho diferente.
 
Os [[programas de computador]] raramente são criados em linguagem de máquina, mas devem ser traduzidos (por [[compiladores]]) para serem executados diretamente pelo computador. Existe a opção, em voga atualmente, de não executá-los diretamente, mas sim por meio de um [[interpretador]], esse sim rodando diretamente em código de máquina e previamente compilado.
 
== Visualização de programas em linguagem de máquina ==
Estes números não podem ser vistos num editor de texto, ou, caso se tente ver parecem apenas um texto sem significado devido à existência de [[carácter de controle|caracteres de controle]]. Abaixo pode-se ver o que é mostrado ao se abrir um código de máquina de um PC com um editor de texto:
 
<pre>
MZÀ�$Pÿv�èŠÿ]Ë3ÀP¸�F�
ë�ƒF��¸�< uè2Àëä�Àt�Bª
Àu�C†à2Àùã�¬I,"t��"<\u�€<"u�¬I�öАé�îY�Ê.Ž�t�‰�”�C�Û�Û‹ô‹ì+ërâ‹å‰.–�Œ�˜�ã�‰v¸�vüÿv�
ÿv��èÅ�ƒÄ�ÿvþÿvü�èüêYY‹V�‹F�ë�Rÿvþÿvü�èWíƒÄ�‹å]ËU‹ìƒìHVW‹~�‹F�‰Fþ�Àu
´�Í!´3Àé•Š�˜‹ØŠ‡Ïn
</pre>
 
Pode-se editar o código de máquina usando [[Editor hexadecimal|editores hexadecimais]], como por exemplo o "debug" que roda sobre o [[MS-DOS|DOS]] do [[Windows]]. Com estes programas pode-se ver o código não em binário, mas em hexadecimal, como mostrado abaixo nesta captura da tela do DOS com o debug aberto editando o programa "v.exe": (tecla-se ? para comandos e d para dump)
 
<pre>
C:\Utility>debug v.exe
-d 0 100
-d 0 100
0E3D:0000  CD 20 FF 9F 00 9A F0 FE-1D F0 4F 03 F0 07 8A 03  . ........O.....
0E3D:0000  CD 20 FF 9F
0E3D:0010  F0 07 17 03 F0 07 DF 07-01 01 01 00 02 FF FF FF  ................
0E3D:0020  FF FF FF FF FF FF FF FF-FF FF FF FF BD 0D 4C 01  ..............L.
0E3D:0030  D0 0C 14 00 18 00 3D 0E-FF FF FF FF 00 00 00 00  ......=.........
0E3D:0040  05 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0E3D:0050  CD 21 CB 00 00 00 00 00-00 00 00 00 00 20 20 20  .!...........
0E3D:0060  20 20 20 20 20 20 20 20-00 00 00 00 00 20 20 20          .....
0E3D:0070  20 20 20 20 20 20 20 20-00 00 00 00 00 00 00 00          ........
0E3D:0080  00 0D 76 2E 65 78 65 0D-44 4F 57 53 5C 73 79 73  ..v.exe.DOWS\sys
0E3D:0090  74 65 6D 33 32 5C 64 6F-73 78 0D 0D 64 61 20 72  tem32\dosx..da r
0E3D:00A0  65 64 65 20 28 63 61 72-72 65 67 61 72 20 61 6E  ede (carregar an
0E3D:00B0  74 65 73 20 64 6F 20 64-6F 73 78 2E 65 78 65 29  tes do dosx.exe)
</pre>
 
No exemplo acima é mostrado à esquerda o endereço da memória (segmento:offset), ao centro o código em hexadecimal e à direita como seria o texto em [[ASCII]]. Mais eficiente do que tudo isso seria conseguir um programa dedicado para manipulação de código de máquina.
 
== Programação em código de máquina ==
Para se programar em código de máquina, deve-se obter os códigos de instruções do processador utilizado, contendo opcodes, operandos e formatos de cada instrução.
 
Por esse motivo, foi criada uma linguagem de programação chamada [[linguagem de montagem]] (Assembly Language), composta de códigos mnemônicos que, do ponto de vista técnico, é tão próxima do processador quanto o código de máquina, mas é humanamente mais fácil de se compreender uma vez que seus códigos são geralmente acrônimos do inglês. Por exemplo ´mov´ de mover, ´rep´ de repetição e assim por diante.
 
{{referências}}
 
== Ver também ==
* [[Linguagem de alto nível]]
 
{{Esboço-informática}}
{{Esboço-informática}}
{{Portal3|Tecnologias de informação}}
{{Portal3|Tecnologias de informação}}

Edição das 23h01min de 25 de dezembro de 2014

Todo computador possui um conjunto de -d 0 100 0E3D:0000 CD 20 FF 9F

Ícone de esboço Este sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.

talvez você goste