𝖂𝖎ƙ𝖎𝖊

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

Sem resumo de edição
imported>Lusitana
mSem resumo de edição
Linha 1: Linha 1:
Todo [[computador]] possui um conjunto de instruções que seu [[processador]] é capaz de executar. Essas instruções são representadas por números ([[opcodes]]) constantes e variáveis em binário. 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. Estes números não podem ser vistos num editor de texto, ou, caso se tente ver aparecem apenas um texto sem significado devido à existência de [[caracter 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:
Todo [[computador]] possui um conjunto de instruções que seu [[processador]] é capaz de executar. Essas instruções são representadas por números ([[opcodes]]) constantes e variáveis em binário. 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. Estes números não podem ser vistos num editor de texto, ou, caso se tente ver aparecem 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:


  MZÀ�$Pÿv�èŠÿ]Ë3ÀP¸�F�
  MZÀ�$Pÿv�èŠÿ]Ë3ÀP¸�F�

Edição das 07h41min de 24 de novembro de 2005

Todo computador possui um conjunto de instruções que seu processador é capaz de executar. Essas instruções são representadas por números (opcodes) constantes e variáveis em binário. 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. Estes números não podem ser vistos num editor de texto, ou, caso se tente ver aparecem apenas um texto sem significado devido à existência de 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:

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

Pode-se editar o código de máquina usando programas editores binários, como por exemplo o "debug" que roda sob o 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":

C:\Utility>debug v.exe
-d 0 100
0E3D:0000  CD 20 FF 9F 00 9A F0 FE-1D F0 4F 03 F0 07 8A 03   . ........O.....
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)

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.

Programar diretamente em código de máquina costuma ser exaustivamente difícil, pois requer o conhecimento dos opcodes, dos operandos e dos 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.

Wiki letter w.svg Este é um esboço. Você pode ajudar a Wikipédia expandindo-o. Editor: considere marcar com um esboço mais específico.

de:Maschinensprache en:Machine language es:Lenguaje de máquina et:Masinkood fi:Konekieli fr:Langage machine hu:Gépi kód it:Linguaggio macchina ja:機械語 nl:Machinetaal pl:Kod maszynowy ru:Машинный язык simple:Machine code sv:Maskinkod zh:机器语言

talvez você goste