水泥外加剂的配方:急求高人:关于汇编中断服务程序

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/25 05:22:17
1下面的程序可以运行,作用是在屏幕上显示一个计时器。要用子程序clock置中断向量int 1ch,但是为什么将data segment中的level前面的分号去掉就不能运行了呢?
2象code这样既有代码,又有数据的段只能用DS做其中数据的段地址吗?
3assume后面可以让一个段寄存器对应两个段吗?
data segment
;level db 2
data ends
code segment
assume ds:code,cs:code,ds:data
clock proc far
dec cs:[x]
jz c2
jmp cend
c2: push ds
push es
push ax
push bx
push cx
push dx
push si
push di
push cs
pop ds
mov [x],20
inc [s]
cmp [s],60
jb c1
mov [s],0
inc [m]
cmp [m],60
jb c1
mov [m],0
inc [h]
cmp [h],24
jb c1
mov [h],0
c1: mov al,[s]
mov ah,0
mov dl,10
div dl
or ax,3030h
mov word ptr [t+6],ax
mov al,[m]
mov ah,0
div dl
or ax,3030h
mov word ptr [t+3],ax
mov al,[h]
mov ah,0
div dl
or ax,3030h
mov word ptr[t],ax

mov cx,8
cld
mov ax,0b800h
mov es,ax
mov ah,1fh
lea si,[t]
mov di,71*2
c3:lodsb
stosw
loop c3
pop di
pop si
pop dx
pop cx
pop bx
pop ax
pop es
pop ds
cend:iret
t db '00:00:00'
h db 0
m db 0
s db 0
x db 20

clock endp
start:mov ax,data
mov ds,ax

lea dx,clock
mov ax,251ch
int 21h;置中断向量
mov ax,3100h
lea dx,start
;lea cx,clock
;sub dx,cx
mov cl,4
shr dx,cl
add dx,11h
int 21h;驻留内存
;update_bodyshow
;call time
ret
programover: mov ah,4ch
int 21h
code ends
end start