Hola buenas tardes, nomas aqui preguntando como hacer una macro que me ayude nomas a controlar angulos como que recorra nomas los pasos necesarios para 90° o 180° de un motor a pasos unipolar les voy a dejar el codigo que me pasaron. Para si me pueden ayudar con la macro. les agradeceria la ayuda me urge
Código:
page 58,112
include MACROS.txt
DURACION2 MACRO DECIMAS
PUSHA
MOV AX,decimas
Ciclo3:
MOV BX,2950
Ciclo4:
MOV CX,65535
Ciclo5:
DEC CX
JNE Ciclo5
DEC BX
JNE Ciclo4
DEC AX
JNE Ciclo3
POPA
ENDM
DURACION3 MACRO DECIMAS
PUSHA
MOV AX,decimas
Ciclo6:
MOV BX,2950
Ciclo7:
MOV CX,65535
Ciclo8:
DEC CX
JNE Ciclo8
DEC BX
JNE Ciclo7
DEC AX
JNE Ciclo6
POPA
ENDM
DURACION4 MACRO DECIMAS
PUSHA
MOV AX,decimas
Ciclo00:
MOV BX,2950
Ciclo11:
MOV CX,65535
Ciclo22:
DEC CX
JNE Ciclo22
DEC BX
JNE Ciclo11
DEC AX
JNE Ciclo00
POPA
ENDM
ENVIAR1 MACRO
PUSHA
MOV AX,1 ;guardas en AL (dato a enviar)
MOV DX,0378H ;pones la direccion del puerto (salida)
OUT DX,AL
ENDM
ENVIAR2 MACRO
PUSHA
MOV AX,2 ;guardas en AL (dato a enviar)
MOV DX,0378H ;pones la direccion del puerto (salida)
OUT DX,AL ;sacas el dato por el puerto de salida
POPA
ENDM
ENVIAR3 MACRO
PUSHA
MOV AX,4 ;guardas en AL (dato a enviar)
MOV DX,0378H ;pones la direccion del puerto (salida)
OUT DX,AL ;sacas el dato por el puerto de salida
POPA
ENDM
ENVIAR4 MACRO
PUSHA
MOV AX,8 ;guardas en AL (dato a enviar)
MOV DX,0378H ;pones la direccion del puerto (salida)
OUT DX,AL ;sacas el dato por el puerto de salida
POPA
ENDM
pila segment stack
DW 64 DUP(?)
pila ENDS
datos SEGMENT
CADENA DB "ENVIADO 1", 13, 10, "$"
CADENA2 DB "ENVIADO 2", 13, 10,"$"
CADENA3 DB "ENVIADO 4", 13, 10,"$"
CADENA4 DB "ENVIADO 8", 13, 10,"$"
DECIMAS DW 5
datos ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:datos,SS:pila
INICIO:
MOV CX,5 ;65535 ES EL NUMERO MAS GRANDE QUE LE CABE A UN REGISTRO
;MOV [DECIMAS],3
mylabel:
ENVIAR1
MOV BX,19H
MOV AX, DATOS
MOV DS, AX
MOV DX, OFFSET CADENA
MOV AH, 09H
INT 21H
DURACION DECIMAS
ENVIAR2
MOV BX,19H
MOV AX, DATOS
MOV DS, AX
MOV DX, OFFSET CADENA2
MOV AH, 09H
INT 21H
JMP MYLABEL2
MYLABEL3:
LOOP mylabel
MYLABEL2:
DURACION2 DECIMAS
ENVIAR3
MOV BX,19H
MOV AX, DATOS
MOV DS, AX
MOV DX, OFFSET CADENA3
MOV AH, 09H
INT 21H
DURACION3 DECIMAS
ENVIAR4
MOV BX,19H
MOV AX, DATOS
MOV DS, AX
MOV DX, OFFSET CADENA4
MOV AH, 09H
INT 21H
DURACION4 DECIMAS
JMP MYLABEL3
MOV AH,4CH
INT 21H
int 20 ;fin del programa
CODE ENDS
END INICIO