這個(gè)程序用于是程序啟動(dòng)后顯示系統(tǒng)時(shí)間,但是顯示的不對(duì),請(qǐng)大蝦幫忙看看
這是這段代碼運(yùn)行效果,顯示的年月日都變成秒了

assume cs:code
code Segment
start:
cli ;避免在設(shè)置堆棧時(shí)中斷
mov ax,0 ;mov ax,cs
mov ss,ax
mov sp,7c00h
sti
mov ax,0
mov es,ax ;要讀的內(nèi)存基址
mov bx,800h ;要讀的內(nèi)存偏移
mov ah,2 ;功能號(hào),讀
mov al,3 ;讀三個(gè)扇區(qū)
mov ch,0 ;磁道號(hào)
mov cl,2 ;扇區(qū)號(hào)
mov dl,0 ;驅(qū)動(dòng)器號(hào)
mov dh,0 ;磁頭號(hào)(面)
int 13h
;置CS,IP
mov ax,0
mov bx,800h
push ax
push bx
retf
;湊足一個(gè)扇區(qū),主要滿足int 19 對(duì)'55AA'標(biāo)志的要求
db 469 dup('A')
db 85,170 ;55AA
T:jmp RealPrograme
data db 9,8,7,4,2,0
db '// :: '
RealPrograme:
mov ax,cs
mov ds,ax
mov si,offset data
mov di,0
mov cx,6
s:
push cx
mov al,ds:[si]
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
and al,00001111b
add ah,30h
add al,30h
mov dl,71h
mov bx,0b800h
mov es,bx
mov byte ptr es:[di].[160*12+40*2],ah
mov byte ptr es:[di].[160*12+40*2+1],dl
add di,2
mov byte ptr es:[di].[160*12+40*2],al
mov byte ptr es:[di].[160*12+40*2+1],dl
;inc si
add di,2
mov al,ds:[si].[6]
mov byte ptr es:[di].[160*12+40*2],al
mov byte ptr es:[di].[160*12+40*2+1],dl
add di,2
inc si
pop cx
loop s
jmp RealPrograme
code ends
end start
posted on 2007-06-25 22:16
merlinfang 閱讀(1325)
評(píng)論(1) 編輯 收藏 引用 所屬分類:
匯編語(yǔ)言