Quais são as vantagens de uma linguagem de montagem na programação sobre uma linguagem de máquina?
"Readability".
Linguagem assembly é muito mais legível e lembrada pelos humanos do que código de máquina (o que significaria escrever em 1's e 0's).
Para ser claro, vamos colocar essa questão também. O código da máquina não é na verdade 1's e 0's. Um computador não sabe nada sobre sistemas numéricos. São apenas estados de ligado e desligado dentro de portas lógicas dentro de circuitos integrados, que são bem representados por números binários (1's, 0's). A realidade é que programar em "linguagem de máquina" significaria alternar interruptores ou introduzir variedades de combinações on/off através da interface do teclado (que representamos como 1 e 0).
O meu ponto é ajudar a compreender que mesmo escrevendo isto:
MOV BL, AL => 10001000 11000011
Lado esquerdo é montagem, lado direito é binário
P>Even, neste caso o computador ainda não sabe nada sobre o que significa um "1" ou um "0". Ele não sabe realmente o que são números.
O binário do lado direito acima é na realidade apenas: on, off, off, off, on, off, off, off - on, on, on, off, off, off, off, on, on.
Existe uma série complexa de inúmeros bilhões dessas portas lógicas em CPU's modernas (5 bilhões+ nas últimas Intel's e AMD's). Há muito mais bilhões em outros chips nas placas gráficas e outros periféricos também. Essa série de portões lógicos sendo ligados e desligados diz à CPU para fazer uma operação de movimentação que irá mover o valor do operando de registro AL para o registro BL de destino. Quando eu digo que "diz" à CPU para fazer uma operação de movimentação que também é apenas mais uma série de instruções para ligar e desligar. O que acontece é que quando essa série particular de comutadores on/off são enviados/ocupados na CPU, ela começa a executar a operação MOV do conjunto de instruções da CPU (o que significa fazer muito mais lógica de comutação on/off que representa a instrução MOV real para aquela CPU - buscar os dados específicos de AL, carregá-lo em BL, ou outro local na memória, etc... )
Artigos semelhantes
- Qual é a diferença entre linguagem de máquina, linguagem de montagem e linguagem de alto nível em computadores?
- Porque é que a linguagem de montagem é melhor do que a linguagem de nível da máquina?
- Porque é que a linguagem de montagem depende da máquina?
- Qual é a diferença entre uma linguagem de montagem e uma linguagem de alto nível?