Sintaxe de Código no MASM - Assembly - Mente Binária
By Insurgente, May 21 in Assembly
Tenho um código que funciona que consegui de outra postagem aqui do site:
Eu queria fazer este código simples funcionar:
;[ORG 0x100]
MOV AH, 9 ; AH deve ser 9 para a int 21 imprimir uma string
MOV DX, msg ; DX=Ponteiro para msg
MOV AX, 0x4C00 ; Termina o programa
msg DB 'HelloWorld!$' ; Insere a mensagem que é uma string terminada em "$"
Como faço pra esse pequeno código acima funcionar?
Vejam a imagem a seguir. Eu quero fazer o código da esquerda ir para o editor à direita e rodar:
Isso é código de 16-bits. Nunca usei o MASM para tal, mas esse cara dá algumas dicas pra fazer funcionar: https://blog.fpmurphy.com/2017/11/16-bit-intel-assembly-on-windows-10.html - perceba que ele só rodou o binário no DOSBox (um emulador de DOS), mas compilou no MASM 6.14 e 7.10 (com a opção /omf). Enfim, dá um trabalhinho mas vai. 😉
36 minutos atrás, Fernando Mercês disse:
Tem alguma dica pra saber se o programa é 16bits ou 32bits?
Este programa abaixo é 16bits também?
O código-fonte (à esquerda) é em C e pode ser compilado pra 16, 32 ou 64 sem problemas. Já o exemplo do código compilado à direita tá em Assembly e o fato de ter esse ".model small" acredito que só faça sentido em programas de 16-bits sim, mas aqui tem uma explicação mais completa: https://stackoverflow.com/questions/47252660/what-is-meaning-of-model-small-in-8086-programs