Foro de Assembler

sairus black

Lanero Reconocido
19 Ene 2008
1,848
Bueno bros me atrevi a crear este tema, por dos razones; la primera es que a diferencia de lo que muchos piensan el assembler no es un lenguaje muerto y la segunda que para muchas personas (Programadores o no) se constituye en un dolor de cabesa.

La idea fundamental es crear un espacio de colaboracion entre aqueellos que dominan en el lenguaje y aquellos que quieren aprenderlo.

Ojala no moleste a nadie y este tema le sirva a muchos.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

PROYECTO A.M.A.B
:

Inicio: 2010-04-12
Estado: En progreso
Documento:
En espera de contenido
Colaboradores:
En espera de contenido

Para más informacion sobre el proyecto leer el mensaje 321.
 
  • Me gusta
Reacciones: 2 personas
Bueno aqui va el primer post, como es comun lo mas dificil para arriesgarse a trabajar con un nuevo lenguaje es la herramienta (En el caso de assembler, la cosa es peor por que asi todos los editores son de consola) para ayudar con eso les recomiendo el emu8086 el mejor ambiente para manejar assembler que he visto, no solo edita y compila sino que emula el comportamiento del procesador y la memoria; la verdad es como un IDE de assembler.

podeis bajarlo de http://www.divshare.com/download/3802521-197 o de http://ittz.blogspot.com/2008/02/emu8086-v-405-full.html

Si necesitan el serial, envien un correo a zoecohol@yahoo.es y se les devolvere un correo con el serial.
 
bueno pos sige la negligencia, bueno aqui va una a ver si alguien se compadese:

org 100h

; set video mode
mov ax, 3 ; text mode 80x25, 16 colors, 8 pages (ah=0, al=3)
int 10h ; do it!

; cancel blinking and enable all 16 colors:
mov ax, 1003h
mov bx, 0
int 10h


; set segment register:
mov ax, 0b800h
mov ds, ax

; print "hello world"
; first byte is ascii code, second byte is color code.

mov [02h], 'H'

mov [04h], 'e'

mov [06h], 'l'

mov [08h], 'l'

mov [0ah], 'o'

mov [0ch], ','

mov [0eh], 'W'

mov [10h], 'o'

mov [12h], 'r'

mov [14h], 'l'

mov [16h], 'd'

mov [18h], '!'




; color all characters:
mov cx, 12 ; number of characters.
mov di, 03h ; start from byte after 'h'

c: mov [di], 11101100b ; light red(1100) on yellow(1110)
add di, 2 ; skip over next ascii code in vga memory.
loop c

; wait for any key press:
mov ah, 0
int 16h

ret

bueno como hago para calcular la memoria de toda la cadena? he y no letra por letra?...
Os agradesco cualquier colaboracion.
 
Hey Assembler es lo Maximo quien trabaje bien en Assembler puede hacer de todo yo lo use cuando me mandaron a hacer un Juego. y era como proyecto final de mi Materia y hice uno que tenia hecho en lenguaje C que se llamaba Muertos y Heridos que es de adivinar Numeros y solo tiens 3 opotunidades y ayude a un amigo a hacer el sudoku y les digo que fue lo mas dificil del mundo pero lo terminamos es una Anecdota que queria participar en este foro Gracias :D
 
Si supieras que tengo algunos proyectos hechos en assembler si quieres me das tu correo y te los paso para que lo observes
 
;******************** C A L C U L A D O R A ************************


; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
; Plantilla de Inicio
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
.486
.model flat, stdcall
option casemap :none

include \masm32\include\windows.inc
include \masm32\macros\macros.asm


; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
; Cabezeras
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

include \masm32\include\masm32.inc
include \masm32\include\gdi32.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc

; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
; archivos de librerias que estan definidas para la funcion
; exportadas y examinadas por codigo preconstruido
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

includelib\masm32\lib\masm32.lib
includelib\masm32\lib\gdi32.lib
includelib\masm32\lib\user32.lib
includelib\masm32\lib\kernel32.lib

.code
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

start:



call main ;llamando a la funcion

exit

main proc
LOCAL var1 :DWORD
LOCAL var2 :DWORD
LOCAL str1 :DWORD
LOCAL str2 :DWORD
LOCAL men1 :DWORD
LOCAL men2 :DWORD
LOCAL opcion :DWORD


print chr$("1.- Multiplicacion",13,10)
print chr$("2.- Suma",13,10)
print chr$("3.- Resta",13,10)
print chr$("4.- Division",13,10)


mov opcion, sval(input ("Que Operacion desea Realizar: "))




; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
; M U L T I P L I C A C I O N
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

.IF (opcion==1)

print chr$("**** M u l t i p l i c a c i o n ****",13,10)
mov var1, input ("Ingrese un numero: ",13,10)
mov str1, sval(var1)
mov var2, input ("Ingrese UN numero: ",13,10)
mov str2, sval(var2)

mov eax, str1
mov ebx, str2

mul ebx

print str$(eax)
print chr$(13,10)

.ENDIF

; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
; S U M A
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

.IF(opcion==2)

print chr$("**** S u m a ****",13,10)
mov var1, input ("Ingrese un numero: ",13,10)
mov str1, sval(var1)
mov var2, input ("Ingrese UN numero: ",13,10)
mov str2, sval(var2)

mov eax, str1
mov ebx, str2

add eax, ebx

print str$(eax)
print chr$(13,10)


.ENDIF

; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
; R E S T A
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

.IF(opcion==3)
print chr$("**** R e s t a ****",13,10)
mov var1, input ("Ingrese un numero: ",13,10)
mov str1, sval(var1)
mov var2, input ("Ingrese UN numero: ",13,10)
mov str2, sval(var2)

mov eax, str1
mov ebx, str2

sub eax, ebx

print str$(eax)
print chr$(13,10)

.ENDIF

; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
; D I V I S I O N
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

.IF (opcion==4)

print chr$("**** D i v i s i o n****",13,10)
mov var1, input ("Ingrese un numero: ",13,10)
mov str1, sval(var1)
mov var2, input ("Ingrese UN numero: ",13,10)
mov str2, sval(var2)

mov eax, str1

invoke IntDiv,eax, str2

print str$(eax)
print chr$(13,10)

.ENDIF
main endp
end start
 
hey bro, me hacen falta todas las librerias...es que yo uso el emu8082...tube el macro pero me aburrio...donde me puedo conseguir esas librerias....gracias.
 
La Verdad que no c men pero yo usaba el masm32

Pos me toco hacer lo del colombiano....bajarme ese prog...cortar las librerias y ponerlas el la carpeta del emu8086...jeje es lo unico que se me ocurre.

oye bro ta bacana tu claculadora...yo hice una pero solo sumaba y restaba y era mucho mas codigo...eso si sin librerias...jeje garcias por tu contribucion ojala alguien mas se una..todo que esto ya esta cogiendo forma.
 
yo utilzaba el masm32 + radasm, muy bueno, o eclipse con su respectivo plugin (la ventaja del masm + radasm es que es portable, entonces en la U solo conectaba la memoria y listo, le modificaba el path y a trabajar comun y corriente)
 
yo utilzaba el masm32 + radasm, muy bueno, o eclipse con su respectivo plugin (la ventaja del masm + radasm es que es portable, entonces en la U solo conectaba la memoria y listo, le modificaba el path y a trabajar comun y corriente)

Gracias por el aporte, bor...una cosa, en ese prog...tenias las librerias que me faltan...aun las ando buscando...jeje...bueno como dije gracias bro...esto sigue mejotando...ojala siga asi.

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Si el masm32...trae las librerias que necesitaba...gracias bro.