Professional Documents
Culture Documents
HLT HLT
MUL BX NOT AX
HLT HLT
[1302H] =0000H
MOV AX,0005H
MOV CX,AX
DEC CX
LOOP : MUL CX
DEC CX
JNZ LOOP
MOV [1300H],AX
HLT
Transfer a block of data from one memory location to another memory location.
MOV [DI], AL
INC SI
INC DI
DEC CX
JNZ LOOP
HLT
SOURCE DESTINATION
1201 – 02 1301 – 02
1202 – 03 1302 – 03
1203 – 04 1303 – 04
1204 – 05 1304 - 05
Simple program for run the stepper motor in clockwise and anti clockwise.
OUT C0, AL
LOOP1: DEC DX
INC DI
1201 – 05H
1202 – 06H
1203 – 0AH
[1202H] =0003H
[1204H] =0005H
[1206H] =0001H
mov ax,3fffh
mov si,1200h
mov cx,[si]
loop2: add si,0002h
cmp ax,[si]
jc loop1
mov ax,[si]
loop1: dec cx
jnz loop2
mov [1300h],ax
hlt
[1202H] =0003H
[1204H] =0005H
[1206H] =0001H
Ascending order
MOV DX,0004H ;DX=0004
DEC CX ;CX=03 / 02 / 01 / 00
JNZ LOOP2 ;CX not zero then go to loop2 / repeat / repeat / come out from loop
JNZ LOOP3 ;DX not zero then go to loop3 / repeat / repeat / come out from loop
[1202H] =0044H
[1204H] =0033H
[1206H] =0011H
[1208H] =0022H
1st step
55 44 33 11 22
44 55 33 11 22
44 33 55 11 22
44 33 11 55 22
44 33 11 22 55
2nd step
44 33 11 22 55
33 44 11 22 55
33 11 44 22 55
33 11 22 44 55
33 11 22 44 55
rd
3 step
33 11 22 44 55
11 33 22 44 55
11 22 33 44 55
11 22 33 44 55
11 22 33 44 55
4th step
11 22 33 44 55
11 22 33 44 55
11 22 33 44 55
11 22 33 44 55
11 22 33 44 55
Decending order
MOV DX,0004H
MOV SI,1200H
CMP AX,[SI+02H]
JNL LOOP1
XCHG [SI+02H],AX
XCHG [SI],AX
DEC CX
JNZ LOOP2
;LOOP LOOP2
DEC DX
JNZ LOOP3
HLT
#start=Traffic_Lights.exe#
name "traffic"
call delay
add si,0002h
dec cl
jnz loop1
jmp start
loop2: dec dx
jnz loop2
ret
;INPUT DATA
;1200 = 030C
;1202 = 0861
Stepper Moter
; this is an example of out instruction.
; it writes values to virtual i/o port
; that controls the stepper-motor.
; c:\emu8086\devices\stepper_motor.exe is on port 7
#start=stepper_motor.exe#
name "stepper"
#make_bin#
;jmp start
start: mov di,1200h
mov cl,04h
loop2: mov al,[di]
out 7,al
mov dx,0fh
back: dec dx
jnz back
inc di
loop loop2
jmp start
Clockwise Data: - 01 03 06 00
Anticlockwise Data: - 04 06 03 00