jueves, 16 de mayo de 2013

Acceso a discos en lenguaje ensamblador

Dispositivo de almacenamiento de acceso directocualquier tipo de dispositivo de almacenamiento secundario que tiene un tiempo de acceso
bajo en proporción a su capacidad.
Como se hace el acceso a  disco  usando lenguaje ensamblador:los datos se registran sobre la superficie del disco en una serie de circunferencias concentricas llamadas pistas (track).
varias pistas , una por cada cara del disco (generalmente 2) , componen un cluster. cada pista esta divida en porciones iguales
llamadas sectores. un sector es la unidad basica del almacenamiento en un disco. el tamamaño de un sector se mide en bytes y depende
de las caracteristicas del disco.
un ejemplo de las 3 rutinas son : que permiten lectura y escritura absoluta de sectores, asi como la determinacion del espacio libre
disponible en un disco.


un ejemplo podria ser: rutina_absoluteRead: transfiere de un o mas sectores al buffer especificado accesando directamente a los sectores logicos.
en caso de error se enciende el bit de acarreo y Ax con el codigo de error.


martes, 7 de mayo de 2013

desplazamiento y rotacion

title desplaxamiento_rotacion
 .model SMALL
 .code
 .stack
 start:
  mov ax,10
  mov bx,20
  mov cx,3

 call DesplazaD
  call DesplazaI
  call RotaD
  call RotaI

 mov ax,400h
  init 21h

;subrutinarias
  DesplazoD PROC
  shr ax,1
  sar ax,1

 ret
  DesplazaD ENDP
  DesplazaI PROC

 shl ax,1
  sal ax,1

 ret
  DesplazaI ENDP

 RotaD PROC
  ROR bx,1
  ROC bx,1

 ret
  RotaD ENDP
  RotaI PROC
 
 ROL bx,1
  RCL bx,1

 ret
  RotaI ENDP

end start

Instrucciones de suma y resta


 .MODEL SMALL
 .CODE
 ORG 100H
 BEGIN: JMP SHORT MAIN
 ;----------------------------------------------------------------------------
 BYTEA DB 64H ;DATOS
 BYTEB DB 40H
 BYTEC DB 16H
 WORDA DW 4000H
 WORDB DW 2000H
 WORDC DW 1000H
 ;----------------------------------------------------------------------------
 MAIN PROC NEAR ;Procedimiento principal:
 CALL B10ADD ;Llama a la rutina ADD
 CALL C10SUB ;Llama a la rutina SUB
 INT 21H
 MAIN ENDP
 ; Ejemplos de suma (ADD) de bytes:
 ;----------------------------------------------------------------------------
 B10ADD PROC
 MOV AL, BYTEA
 MOV BL, BYTEB
 ADD AL, BL ;registro a registro
 ADD AL, BYTEC ;memoria a registro
 ADD BYTEA, BL ;registro a memoria
 ADD BL, 10H ;inmediato a registro
 ADD BYTEA, 25H ;inmediato a memoria
 RET
 B10ADD ENDP
 ; Ejemplos de resta (SUB) de palabras:
 ;----------------------------------------------------------
 C10SUB PROC
 MOV AX, WORDA
 MOV BX, WORDB
 SUB AX,BX ;Registro a registro
 SUB AX,WORDC ;Memora de registro
 SUB WORDA, BX ;Registro de memoria
 SUB BX, 1000H ;Inmediato de registro
 SUB WORDA, 256H ;Inmediato de memoria
 RET
 C10SUB ENDP
 END BEGIN

francisco cordero:

Captura de Cadenas

maria yesenia chagoyan


Incremento y Decremento (Lenguaje Ensamblador)

sergio castrillo
 

ciclos condicionales

codigo estefania

title p12cmpst
.model small
.stack 100h
.data
mensaje db 'mensaje'
.code
inicio proc near
start:
mov ax,@data
mov ds,ax
mov bl,5
mov ah,2
proceso:
add bl,30h
mov dl,bl
int 21h
mov dl,oah
int 21h
mov dl,0dh
int 21h
 sub bl,30h
 sub bl,1
 cmp bl,0
 jge proceso
 mov ax,4c00h
 int 21h

 inicio endp

 end inicio


programa :