鱼C论坛

 找回密码
 立即注册
查看: 2844|回复: 0

[汇编作业] 实验14代码分享

[复制链接]
发表于 2016-3-16 23:40:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
assume cs:code
code segment
main:       
        mov bl,0                ;用来索引端口地址
        mov cx,6                ;6次循环取出端口中的日期时间
s:        mov dx,cx                ;用DX保存CX的值
        mov al,9h                ;设置读取初始地址(从年开始读)
        sub al,bl                ;指向下一个读取地址
        out 70h,al
        in al,71h               
        mov ah,al               
        mov cl,4
        shr ah,cl
        and al,00001111b
        add al,30h
        add ah,30h               
        push ax                        ;将转换后的时间日期压入栈。
        mov cx,dx                ;恢复CX的值
        cmp cx,4        ;判断CX与4的大小(CX在6-4,设bl自增1,即索引9h,8h,7h地址。cx等于4,设bl增加3,小于4,设bl增加2,即索引4h,2h,0h)
        jna ok                       
        add bl,1
        jmp short s0
ok:        jne ok1
        add bl,3
        jmp short s0               
ok1:        add bl,2
s0:        loop s

        mov bp,sp        ;设置bp指向sp
        add bp,10        ;设置bp指向年,方便从年开始显示

        mov ax,0b800h
        mov es,ax
        mov cx,6        ;循环6次将栈中数据显示出来
        mov si,40        ;从40列开始显示,设默然行为1920(12*160)       

s1:        mov ax,[bp]
        mov es:[si+1920],ah                ;显示十位数据
        mov byte ptr es:[si+1+1920],2        ;用绿色显示
        mov es:[si+2+1920],al                ;显示个位数据
        mov byte ptr es:[si+3+1920],2        ;用绿色显示
        cmp cx,4                        ;判断CX与4的大小,大于4,用“/”分隔,等于4用空格分隔,小于4用“:”分隔。(等于1不分隔)
        jna ok2
        mov byte ptr es:[si+4+1920],'/'        ;用‘/’分隔年/月/日
        mov byte ptr es:[si+5+1920],5        ;将‘/’用红色显示       
        jmp short s10
ok2:        je ok3
        cmp cx,1                        ;(等于1不分隔)
        je s10
        mov byte ptr es:[si+4+1920],':'        ;用‘:’分隔时:分:秒
        mov byte ptr es:[si+5+1920],5        ;也用红色显示
        jmp short s10
ok3:           mov byte ptr es:[si+4+1920],' '        ;用空格隔开日期和时间
       
s10:        sub bp,2               
        add si,6
        loop s1

        mov ax,4c00h
        int 21h

code ends
end main
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 12:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表