. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->端口
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验14,使用21h中断的9号功能显示  [待解决] 回复[ 0次 ]   点击[ 112次 ]  
zinkt
[帖 主]   [ 发表时间:2021-05-06 16:33 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2021-04-11 18:30
assume cs:code,ds:data

data segment
        year        db 2 dup(0)
                        db '/'
        mon                db 2 dup(0)
                        db '/'
        day                db 2 dup(0)
                        db '-'
        hour        dw 0
                        db ':'
        min                dw 0
                        db ':'
        sec                dw 0
                        db '$'
data ends

stacksg segment stack
        db 16 dup(0)
stacksg ends

code segment
split_al_bcd2ascii:                ;ah=十位,al为个位
        push cx
        mov ah,al
        mov cl,4
        shr ah,cl
        and al,00001111b
        add al,30h
        add ah,30h
        pop cx
        ret
start:
        mov ax,data
        mov ds,ax
        mov ax,stacksg
        mov ss,ax
        mov sp,16

        mov al,9                                        ;year
        out 70h,al
        in al,71h
        call split_al_bcd2ascii        
        mov ds:[0],ah
        mov ds:[1],al

        mov al,8                                        ;month
        out 70h,al
        in al,71h
        call split_al_bcd2ascii        
        mov ds:[3],ah
        mov ds:[4],al

        mov al,7                                        ;day
        out 70h,al
        in al,71h
        call split_al_bcd2ascii        
        mov ds:[6],ah
        mov ds:[7],al

        mov al,4                                        ;hour
        out 70h,al
        in al,71h
        call split_al_bcd2ascii        
        mov ds:[9],ah
        mov ds:[10],al

        mov al,2                                        ;minute
        out 70h,al
        in al,71h
        call split_al_bcd2ascii        
        mov ds:[12],ah
        mov ds:[13],al

        mov al,0                                        ;second
        out 70h,al
        in al,71h
        call split_al_bcd2ascii        
        mov ds:[15],ah
        mov ds:[16],al

        mov dx,0                        ;显示数据段字符串
        mov ah,9
        int 21h

        mov ah,4ch
        int 21h

code ends
end start
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved