martes, 21 de mayo de 2013
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.
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
.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:
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 :
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 :
actividad 13
Un procedimiento es una colección de instrucciones
relacionadas que realiza una tarea específica. También un procedimiento puede
contener un conjunto de instrucciones que deseamos que se ejecuten en varias
partes del programa.
Una macro es un conjunto de instrucciones
asociadas a un identificador: el nombre de la macro.Este conjunto de
instrucciones es invocado como una sola instrucción o macroinstrucción.
Normalmente las instrucciones de una macro se repiten varias veces en un programa o aparecen frecuentemente en los programas. Para emplear una macro en un programa debemos de hacer dos cosas: Definir la macro e invocar la macro.
Normalmente las instrucciones de una macro se repiten varias veces en un programa o aparecen frecuentemente en los programas. Para emplear una macro en un programa debemos de hacer dos cosas: Definir la macro e invocar la macro.
Diferencia: La principal diferencia entra una
macro y un procedimiento es que la macro hace posible el paso de parámetros y
el procedimiento no( eso es aplicable solo para el TASM , hay otros lenguajes
de programación que si lo permiten) .
PROCEDIMIENTOS PROGRAMA:
MACRO PROGRAMA:
lunes, 6 de mayo de 2013
actividad 12
pantalla principal:
al ingresar el mensaje y dar inicio en el boton comenzar
al presionar TERMINAR y muestra el mensaje multiplicado por 100
package civer;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
*
* @author CRAZY
*/
class mensaje extends JFrame implements ActionListener
{
private JLabel pc1,nombre,tiempInicia,tiempoTermina,;
private JTextField nomb,tiempoI,tiempoT;
private JButton empieza,termina;
private JPanel p1,p2,p3,p4;
private Container con;
private javax.swing.Timer t;
private int horas,horas1;
private int minutos,minutos1;
private int segundos,segundos1;
private String calculaTiempo,calculaTiempo1,nombr;
int t1=1,t2,t3,t4,totalA,tt;
double totalApagar;
private final JLabel logo;
public mensaje()
{
con=this.getContentPane();
con.setLayout(new GridLayout(4,0));
p1=new JPanel();
p1.setLayout(new FlowLayout());
p1.setBackground(new Color(255,98,21));
p2=new JPanel();
p2.setLayout(new FlowLayout());
p2.setBackground(new Color(255,98,21));
p3=new JPanel();
p3.setLayout(new FlowLayout());
p3.setBackground(new Color(255,98,21));
p4=new JPanel();
p4.setLayout(new FlowLayout());
p4.setBackground(new Color(255,98,21));
Icon logi=new ImageIcon("c:\\INTERFAZ_LOGO.jpg");
logo=new JLabel(logi);
p1.add(logo);
nombre=new JLabel("mensaje");
nomb=new JTextField(20);
p2.add(nombre);
p2.add(nomb);
tiempInicia=new JLabel("Tiempo de inicio");
tiempoI=new JTextField(10);
tiempoTermina=new JLabel("Tiempo termina ");
tiempoT=new JTextField(10);
nomb.setBackground(new Color(236,153,62));
tiempoI.setBackground(new Color(236,153,62));
tiempoT.setBackground(new Color(236,153,62));
p3.add(tiempInicia);
p3.add(tiempoI);
p3.add(tiempoTermina);
p3.add(tiempoT);
con.add(p1);
con.add(p2);
con.add(p3);
empieza=new JButton("Comienza");
empieza.setBackground(Color.ORANGE);
termina=new JButton("Termina");
termina.setBackground(Color.ORANGE);
p4.add(empieza);
p4.add(termina);
con.add(p4);
empieza.addActionListener(this);
termina.addActionListener(this);
this.setSize(300,500);
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
t = new javax.swing.Timer(horas, this);
if(e.getSource()==empieza){
Calendar now = Calendar.getInstance();
horas = now.get(Calendar.HOUR_OF_DAY);
minutos = now.get(Calendar.MINUTE);
segundos = now.get(Calendar.SECOND);
calculaTiempo=horas+":"+minutos+":"+segundos;
tiempoI.setText(String.valueOf(calculaTiempo));
JOptionPane.showMessageDialog(null,"su mensaje a multiplicar es: \n"+ nomb.getText());
}
if(e.getSource()==termina){
Calendar now = Calendar.getInstance();
horas1 = now.get(Calendar.HOUR_OF_DAY);
minutos1 = now.get(Calendar.MINUTE);
segundos1 = now.get(Calendar.SECOND);
calculaTiempo1=horas1+":"+minutos1+":"+segundos1;
tiempoT.setText(String.valueOf(calculaTiempo1));
JOptionPane.showMessageDialog(null,"mensaje: \n"+ nomb.getText()x100");
}
}
public static void main(String[] args) {
mensaje m=new mensaje();
}
}
actividad 11
Macros: es
un grupo de instrucciones repetitivas en un programa que se codifican solo una
vez y pueden utilizarse cuantas veces sea necesario. Al momento de ejecutarse la
macrco cada parámetro es sustituido por el nombre o el valor especificado al
momento de la llamada.
Para definir una macro, se utiliza la directiva
MACRO. El formato deesta directiva es :
(nombre_de_macro) MACRO (lista_parámetros).
Procedimientos: conjunto de instrucciones que tienen la finalidad
de ejecutar una tarea especifica dentro de un programa. Los procedimientos son
similiares alas macros
un procedimiento es un conjunto de instrucciones a los que podems dirigir el flujo de nuestro programa , y una vez terminada la ejecución de dichas instrucciones se devuleve el control ala siguiente línea a procesar del código que mando a llamar el procedimiento.
un procedimiento es un conjunto de instrucciones a los que podems dirigir el flujo de nuestro programa , y una vez terminada la ejecución de dichas instrucciones se devuleve el control ala siguiente línea a procesar del código que mando a llamar el procedimiento.
Diferencias:
-es una extensión de un determinado programa,
mientras que la macro es un modulo con
funciones especificas que puede ser utilizado por diferentes programas.
-la forma de llamar a cada uno , para
llamar a un procedimiento se requiere el uso de una directiva, em cambio la
llamada alos macros se realiza como si se tratara de una instrucción del
ensamblador.
-La principal diferencia entra una macro
y un procedimiento es que la macro hace
posible el paso de parámetros y el procedimiento no( eso es aplicable solo para
el TASM , hay otros lenguajes de programación que si lo permiten) .
Suscribirse a:
Entradas (Atom)