top of page

Resumen de Videos Tasm

inician los comentarios, directivas 
.model small, 
.data donde se ponen  las variables ,
.code (codigo del programa)
main proc (definimos un procedimiento)
instrucciones que mueven a segmentos 
colocar valor a una variable
interrupciones
nos muestra como guardar el archivo para compilarlo en el cmd
---------------------------------------------------------------------------------------------------------------------------------
un programa fuente en ensamblador contiene dos sentencias>
las intrucciones y  las directivas
las instrucciones se aplican en tiempo de ejecucion
moc ds, ax <-- Instruccion.
.code <---- Directiva

nos podemos encontrar con instrucciones que estan solas sin operandos sin etiquetas

Instrucciones: Es el nombre de la instruccion a ejecutarse
Operandos: Los operandos para la instruccion que pede ser 1 0 2 separados por comas o nunguno.
Comentarios: el comentario de la instruccion

Directivas: es una instruccion des ensamblador que le ayuda generar algo con respecto al codigo del programa

.model
.stack
.data, .dataseg
.code, .codeseg
.startup inicio de codigo
.exit
.end

segmentos:3 segmentos que pueden utilizar
el segmento de pila... stack segment
el segmento de codigo... code segment
el segmento de datos.... data segment

SINTAXIS BASICA PARA DEFINIR UN SEGMENTO
nombre SEGMENT [aliniacion] [combinacion] ['clase']
instruccion
nombre ENDS
[aliniacion] define el rango de direcciones de memoria para el cual puede elegirse el inicio del segmento. hay cinco posibles:
BYTE:el segmento comienza en el siguiente Byte
WORD:el segmento comienza en la siguiente direccion par
DWORD: comienza en la siguiente direccion multiplo de 4
PARA:comienza en la siguiente direccion multiplo de 16
PAGE:comienza en la siguiente direccion multiplo de 256

[combinacion]: define como cambiar segmentos que tengan el mismo nombre hay cinco posibles:

PRIVATE:no combina los segmentos
PUBLIC:concatena todos los segmentos que tiene el mismo nombre
STACK:es similar al public. la diferencia consiste que al comenzar la ejecucion del programa. el registro SS apuntara a este segmento. y la longuitud de bytes inicializara con la longuitud en bytes de este segmento
COMMON:pone el inicio de todos los segmentos teniendo el mismo nombre en la misma direccion de memoria.
MEMORY: es igual a Public
AT direccion_de_segmento:hace que todas las etiquetas y direcciones de variables tengan el segmento especificado por la expresion contenida en la direccion_de_segmento.

['clase']: es una forma de asociar segmentos con diferentes nombre pero con proposito similares, sirve para identificar el segmento de codigo.


ejemplo:

.model small <--- directiva
;segmento de la pila
Pila (nombre del segmento)  'STACK'SEGMENT stack
DB 200h DUP <---Segmento defino el tama;o de la pila
Pila ENDS<-------

directiva para indicar datos(variables)
Datos SEGMENT 'DATA'
strMensaje db "hola mundo sin directivas",10,13, "$"<--simbolo para cadena donde termina la cadena
strMensaje2 db "este es mi segundo programa en ensamblador"
datos ENDS

Directiva para indicar codigo
Codigo SEGMENT 'CODE'<---- 
ASSUME CS: Codigo,DS:datos,SS:pila<----- referencia a este segmento

inicio de codigo
inicio:mov ax,seg,Datos
i;nstruccion para mover la direccion de la variable saludo en AX 
mov     ax,seg Datos


;Mueve el mismo valor a DS
mov ds,ax

;colocar en dx el mensaje
mov dx,offset strMensaje

;coloca en AH el valor 09 para indicar la interrupcion 09
mov ah,09

e;jecutar la interrupcion para el mensaje en la pantalla
int 21h                    ;interrupcion DOS Functions

;colocar en AH el valor 09 para indicar la interrupcion
mov ah,O9
;ejecuta la interrupcion para el mensaje en la pantalla
int 21h            ;interrupcion DOS Functions

preparar salida del programa

mov ax,4c0Qh
int 21h
codigo ENDS
END inicio

 

bottom of page