⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dvv.asm

📁 dos 工业控制 ad676 模数转换数据采集
💻 ASM
📖 第 1 页 / 共 2 页
字号:
 mov si,offset ofcbname
 mov cx,11
flop: mov al,[bx]
 mov [si],al
 add bx,1
 add si,1
 loop flop
 mov ofcbblk,0
 mov ofcbrcsz,0
 mov ax,0
 mov bx,offset hh
 add bx,1
 mov [bx],ax
 mov [bx+2],ax
 mov oendcode,0
 mov wbuff,0
 mov ax,dat1
 mov es,ax
 call onewrit
no2: mov bx,offset file2
 mov si,offset ofcbname
 mov cx,11
flop2: mov al,[bx]
 mov [si],al
 add bx,1
 add si,1
 loop flop2
 mov ofcbblk,0
 mov ofcbrcsz,0
 mov ax,0
 mov bx,offset hh
 add bx,1
 mov [bx],ax
 mov [bx+2],ax
 mov oendcode,0
 mov wbuff,0
 mov ax,dat2
 mov es,ax
 call onewrit
no3: mov bx,offset file3
 mov si,offset ofcbname
 mov cx,11
flop3: mov al,[bx]
 mov [si],al
 add bx,1
 add si,1
 loop flop3
 mov ofcbblk,0
 mov ofcbrcsz,0
 mov ax,0
 mov bx,offset hh
 add bx,1
 mov [bx],ax
 mov [bx+2],ax
 mov oendcode,0
 mov wbuff,0
 mov ax,dat3
 mov es,ax
 call onewrit
no4: mov bx,offset file4
 mov si,offset ofcbname
 mov cx,11
flop4: mov al,[bx]
 mov [si],al
 add bx,1
 add si,1
 loop flop4
 mov ofcbblk,0
 mov ofcbrcsz,0
 mov ax,0
 mov bx,offset hh
 add bx,1
 mov [bx],ax
 mov [bx+2],ax
 mov oendcode,0
 mov wbuff,0
 mov ax,dat4
 mov es,ax
 call onewrit
no5: mov bx,offset file5
 mov si,offset ofcbname
 mov cx,11
flop5: mov al,[bx]
 mov [si],al
 add bx,1
 add si,1
 loop flop5
 mov ofcbblk,0
 mov ofcbrcsz,0
 mov ax,0
 mov bx,offset hh
 add bx,1
 mov [bx],ax
 mov [bx+2],ax
 mov oendcode,0
 mov wbuff,0
 mov ax,dat5
 mov es,ax
 call onewrit
no6: mov bx,offset file6
 mov si,offset ofcbname
 mov cx,11
flop6: mov al,[bx]
 mov [si],al
 add bx,1
 add si,1
 loop flop6
 mov ofcbblk,0
 mov ofcbrcsz,0
 mov ax,0
 mov bx,offset hh
 add bx,1
 mov [bx],ax
 mov [bx+2],ax
 mov oendcode,0
 mov wbuff,0
 mov ax,dat6
 mov es,ax
 call onewrit
 ret
stdsk endp
onewrit proc near
 call e10creat
 cmp oendcode,00
 jnz a30
 mov cw0,62
w00: dec cw0
    jz w08
 mov cx,512
 mov di,wbuff
 mov si,offset odskrecs
kkbv: mov ax,es:[di]
 mov [si],ax
 add si,2
 add di,2
 loop kkbv
 add wbuff,1024
 call f10writ
 cmp oendcode,00
 jnz w09
 jmp w00
w08: mov dx,offset ok
 call x10err
 mov ah,10h
 mov dx,offset ofcbrec
 int 21h
 cmp al,00
 jnz a30
 ret
a30: mov dx,offset creatmsg
 call x10err
 ret
w09: mov dx,offset me
 call x10err
 ret
onewrit endp
getdata proc near
 mov dx,03e1h
 out dx,al
 mov cx,800
getloop: mul cx
 loop getloop
 mov dx,03e0h
 out dx,al
 mov cx,360
o_l: mul cx
 loop o_l
 mov dx,03e0h
getl0: in al,dx
 test al,01h
 jz getl0
 mov dx,03e1h
 in ax,dx
 shr ax,1
 shr ax,1
 and ax,3fffh
 mov cx,ax
 ret
getdata endp
start endp
sampl proc far
 push ax
 push bx
 push cx
 push dx
 push di
 push si
 push ds
 jmp [testi]
get: nop
 mov ax,data
 mov ds,ax
 mov bx,xw1
 push ds
 mov al,14
 call getdata
 mov ax,dat1
 mov ds,ax
 mov [bx],cx
 mov al,11
 call getdata
 mov ax,dat2
 mov ds,ax
 mov [bx],cx
 mov al,08
 call getdata
 mov ax,dat3
 mov ds,ax
 mov [bx],cx
 mov al,00
 call getdata
 mov ax,dat4
 mov ds,ax
 mov [bx],cx
 mov al,03
 call getdata
 mov ax,dat5
 mov ds,ax
 mov [bx],cx
 mov al,06
 call getdata
 mov ax,dat6
 mov ds,ax
 mov [bx],cx
 pop ds
 add xw1,2
 cmp xw1,62000
 jb sslp
 mov ie,0
 mov ax,offset sslp
 mov testi,ax
sslp: pop ds
 pop si
 pop di
 pop dx
 pop cx
 pop bx
 mov al,20h
 out 20h,al
 pop ax
 iret
sampl endp
retime proc near
 cli
 cld
 mov di,20h
 mov ax,0
 mov es,ax
 mov ax,0fea5h
 stosw
 mov ax,0f000h
 stosw
 mov al,36h
 out 43h,al
 mov ax,0
 out 40h,al
 mov al,ah
 out 40h,al
 sti
 ret
retime endp
setime proc near
 mov ax,offset get
 mov testi,ax
 cld
 mov ax,0
 mov es,ax
 in al,21h
 or al,1
 out 21h,al
 mov di,20h
 mov ax,offset sampl
 stosw
 mov ax,cs
 stosw
 cli
 mov al,36h
 out 43h,al
 mov ax,2384
 out 40h,al
 mov al,ah
 out 40h,al
 sti
 ret
setime endp
e10creat proc near
 lea dx,ofcbrec
 mov ah,16h
 int 21h
 cmp al,00
 jnz oe20
 mov ofcbrcsz,128
 mov ah,1ah
 lea dx,odskrecs
 int 21h
 ret
oe20: mov oendcode,01
 ret
 lea dx,creatmsg
 call x10err
 ret
e10creat endp
f10writ proc near
 mov ah,28h
 mov cx,8
lea dx,ofcbrec
 int 21h
 mov oendcode,al
 ret
f10writ endp
q10clr proc near
 mov ax,0600h
 mov bh,07
 mov cx,00
 mov dx,184fh
 int 10h
 ret
q10clr endp
q20curs proc near
 mov ah,02
 mov bh,00
 mov dh,rowcrt
 mov dl,00
 int 10h
 inc rowcrt
 ret
q20curs endp
x10err proc near
 mov ah,09
 int 21h
 ret
x10err endp
outc proc near
 cmp ax,0
 jge o_o
 mov dl,'-'
 mov [bx],dl
 add bx,1
 neg ax
 jmp o_p
o_o: cmp ax,10000
 jge outc3
 mov dl,20h
 mov [bx],dl
 inc bx
o_p: cmp ax,1000
 jge o_1000
 mov dl,20h
 mov [bx],dl
 inc bx
 cmp ax,100
 jge o_100
 mov dl,20h
 mov [bx],dl
 inc bx
 jmp o_10
outc3: mov si,10000
 call cha1
 mov [bx],dl
 inc bx
o_1000: mov si,1000
 call cha1
 mov [bx],dl
 inc bx
o_100: mov si,100
 call cha1
 mov [bx],dl
 inc bx
o_10: mov si,10
 call cha1
 mov [bx],dl
 inc bx
 add al,30h
 mov [bx],al
 inc bx
 ret
outc endp
cha1 proc near
 mov dl,0
cha2: sub ax,si
 jb cha3
 inc dl
 jmp cha2
cha3: add ax,si
 add dl,30h
 ret
cha1 endp
print proc near
pl: mov dl,[bx]
 inc bx
 cmp dl,'$'
 je pe
 push bx
 mov ah,5
 int 21h
 pop bx
 jmp pl
pe: mov dl,0ah
 mov ah,5
 int 21h
 mov ah,5
 mov dl,0dh
 int 21h
 ret
print endp
h_data1 proc near
 ret
 mov ax,offset swi00
 mov sw10,ax
 mov ax,dat2
 mov es,ax
 mov si,20
 mov cx,32000
hfh_loop: mov ax,es:[si]
 mov bx,es:[si-20]
 push cx
 call swich1u
 add si,2
 pop cx
 loop hfh_loop
 ret
h_data1 endp
h_data2 proc near
 ret
 mov ax,offset swi00
 mov sw10,ax
 mov ax,dat4
 mov es,ax
 mov si,20
 mov cx,32000
fh_loop: mov ax,es:[si]
 mov bx,es:[si-20]
 push cx
 call swich1u
 add si,2
 pop cx
 loop fh_loop
 ret
h_data2 endp
swich1u proc near
 jmp [sw10]
swi00: cmp ax,700
 jl rsw00
 mov crs6,ax
 mov ax,0
 MOV H_00C,AX
 mov es:[si-20],ax
 mov ax,offset swi01
 mov sw10,ax
 ret
rsw00: mov ax,0
 mov es:[si-20],ax
 ret
swi01: cmp ax,bx
 jge rsw01
 call h_max
 mov crsp1,Dx 
 mov cx,crsp1
 sub cx,crs6
 cmp cx,vaxx
 jl rsw911
 mov ax,H_00C
 SHL AX,1
 SHL AX,1
 MOV H_00C,0
 mul cx
 mov cx,crs6
 cmp cx,400
 jge rsw012
 mov cx,400
rsw012: div cx
 cmp ax,4
 jl rsw011
 mov es:[si-20],ax
 mov ax,offset swi09
 mov sw10,ax
 mov al,vccx
 mov vcx,al
 ret
rsw01: mov crsp1,ax
       INC H_00C
       mov ax,0
       mov es:[si-20],ax
       ret
rsw911: mov ax,0fffeh
 mov es:[si-20],ax
 mov ax,bx
 mov crs6,ax
 mov ax,offset swi02
 mov sw10,ax
 MOV H_00C,0
 ret
rsw011: mov es:[si-20],ax
 mov ax,bx
 mov crs6,ax
 mov ax,offset swi02
 mov sw10,ax
 MOV H_00C,0
 ret
swi09: dec vcx
 jnz rws9x
 mov crs6,ax
 mov crsp1,ax
 mov ax,offset swi02
 mov sw10,ax
rws9x: mov ax,0
 mov es:[si-20],ax
 ret
swi02: cmp ax,bx
 jle rsw03
 call h_min
 mov crs6,dx
 mov crsp1,ax
 mov ax,offset swi01
 mov sw10,ax
 mov ax,0
 MOV H_00C,0
 mov es:[si-20],ax
 ret
rsw03: mov crs6,ax
 mov ax,0
 mov es:[si-20],ax
 ret
swich1u endp
h_max proc near
  push cx
  push ax
  push si
  mov cx,10
q_loop: mov ax,es:[si]
  cmp ax,es:[si-2]
  jge w_max
  mov ax,es:[si-2]
w_max: sub si,2
  loop q_loop
  mov dx,ax
  pop si
  pop ax
  pop cx
ret
h_max endp
h_min proc near
  push cx
  push ax
  push si
  mov cx,10
r_loop: mov ax,es:[si]
  cmp ax,es:[si-2]
  jbe w_min
  mov ax,es:[si-2]
w_min: sub si,2
  loop r_loop
  mov dx,ax
  pop si
  pop ax
  pop cx
ret
h_min endp
f_data1 proc near
 ret
 mov ax,offset swi10
 mov sw20,ax
 mov ax,dat3
 mov es,ax
 mov si,20
 mov cx,32000
hff_loop: mov ax,es:[si]
 mov bx,es:[si-20]
 push cx
 call swich1d
 add si,2
 pop cx
 loop hff_loop
 ret
f_data1 endp
f_data2 proc near
 ret
 mov ax,offset swi10
 mov sw20,ax
 mov ax,dat5
 mov es,ax
 mov si,20
 mov cx,32000
ff_loop: mov ax,es:[si]
 mov bx,es:[si-20]
 push cx
 call swich1d
 add si,2
 pop cx
 loop ff_loop
 ret
f_data2 endp

swich1d proc near
 jmp [sw20]
swi10: cmp ax,700
 jb rws10
 mov crs4,ax
 mov crs5,ax
 mov ax,offset swi11
 mov sw20,ax
rws10: mov ax,0
 mov es:[si-20],ax
 ret
swi11: cmp ax,bx
 jge rws11
 call h_max
 mov crs4,dx
 mov crs5,ax
 mov ax,offset swi12
 mov sw20,ax
 mov ax,0
 mov es:[si-20],ax
 MOV H_01C,0
 ret
rws11: mov crs4,ax
 mov ax,0
 mov es:[si-20],ax
 ret
swi12: cmp ax,bx
 jle rws13
 call h_min
 mov crs5,dx
 mov cx,crs4
 sub cx,crs5
 cmp cx,vaxy
 jl rws133
 mov ax,H_01C
 SHL AX,1
 SHL AX,1
 MOV H_01C,0
 mul cx
 mov cx,crs5
 cmp cx,400
 jge rsw92
 mov cx,400
rsw92: div cx
 cmp ax,4
 jl rws131
 mov es:[si-20],ax
 mov ax,offset swi19
 mov sw20,ax
 mov al,vccx
 mov vcy,al
 ret
rws13: mov crs5,ax
 INC H_01C
 mov ax,0
 mov es:[si-20],ax
 ret
rws133: mov ax,0fffeh
 mov es:[si-20],ax
 mov ax,bx
 mov crs4,ax
 mov ax,offset swi11
 mov sw20,ax
 MOV H_01C,0
 ret
rws131: mov es:[si-20],ax
 mov ax,bx
 mov crs4,ax
 mov ax,offset swi11
 mov sw20,ax
 MOV H_01C,0
 ret
swi19: dec vcy
 jnz rws9o
 mov crs4,ax
 mov ax,offset swi11
 mov sw20,ax
rws9o: mov ax,0
 mov es:[si-20],ax
 ret
swich1d endp
cod ends
end start

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -