Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/05/2012, 15:38
Avatar de zero0097
zero0097
 
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años, 6 meses
Puntos: 69
Respuesta: Programar en ensamblador una tabla de multiplicar

pero sabes como obtener el numero, o el numero ya viene declarado en el codigo?
aquí te escribo uno para cualquier numero:

Código:
.model small
.stack 32
.data
	;aqui se definen tus variables, pero no vamos a definir vamos a leer una
.code
	main proc far
	mov ax, @data
	mov ds, ax
	;aqui inicia nuestro código
	
	;pedimos un número
	mov ah, 01h
	int 21h
	
	;esa interrupcion nos da el carácter (asccii) del número en AL
	sub al, 48
	;al restarle 48 obtendremos el numero en realidad y no el ascci del numero

	mov cx, 1 ;para iniciar desde el uno las tablas
	mov ah, 0 ;limpio la parte alta de AX
	
tabla:
	cmp cx, 10
	je salir ;cuando CX sea 10 sale y deja de imprimir la tabla, si la querés hasta el 100 ps poned un 100
	
	mov bl, al ;guardamos nuestro numero en otro registro
	mul cl ;esto multiplica el valor de CL por AL y te da el resultado en AX
	;ahora lo imprimimos poniendolo en dl
	mov dx, ax
	add dx, 48 ;sumamos 48 para que salga el char ascci y no otro caracter raro
	mov ah, 02h
	int 21h
	
	;regresamos el numero a al para la siguiente multiplicacion
	mov al, bl
	
	;incrementamos CX para obtener el siguiente
	inc cx
	jmp tabla ;esto hace un salto a la etiqueta tabla, osea vuelve a hacer lo de arriba
	
salir:
	;aqui finaliza nuestro código
	mov ax, 4c00h
	int 21h
	main endp
end
Si no estas usando las interrupciones aún, pues lo haces con un numero declarado en .data...los comentarios inican con ;;;; (punto y coma) no creas que son para finalizar sentencias
__________________
De nada, hay te encargo +1...

Última edición por zero0097; 16/05/2012 a las 17:35 Razón: faltas de ortografía xD