8086汇编学习小记-王爽汇编语言实验14

端口读写分别用in和out,移位大于1时移位数先存在cl里。CMOS RAM在70h端口输入的是读写的地址,71h存储的地址存储的字节内容。

cpu能直接读取的只有寄存器,内存和端口。

访问CMOS RAM读取系统时间:

View Code
  1 ;中断时的入栈顺序是pushf,push cs, push ip
  2 assume cs : codesg, ss : stacksg
  3 
  4 stacksg SEGMENT
  5     dw 16 dup (0)
  6 stacksg ENDS
  7 
  8 
  9 
 10 codesg SEGMENT
 11 
 12 start:    mov al, 9
 13     out 70h, al
 14     in al, 71h
 15     
 16     mov bx, 0b800h
 17     mov ds, bx
 18     
 19     mov si, 160 * 12 + 36 * 2
 20     mov bl, al
 21     mov cl, 4
 22     and bl, 00001111b
 23     shr al, cl
 24     add bl, 30h
 25     add al, 30h
 26 
 27     mov ah, al
 28     mov al, bl
 29     mov bl, ah
 30     
 31     mov [si], bl
 32     mov byte ptr [si + 1], 02h
 33     add si, 2
 34     mov [si], al
 35     mov byte ptr [si + 1], 02h
 36     add si, 2
 37     mov byte ptr [si], '/'
 38     mov byte ptr [si + 1], 02h
 39     add si, 2
 40 
 41     mov al, 8
 42     out 70h, al
 43     in al, 71h
 44 
 45     mov bl, al
 46     mov cl, 4
 47     and bl, 00001111b
 48     shr al, cl
 49     add bl, 30h
 50     add al, 30h
 51 
 52     mov ah, al
 53     mov al, bl
 54     mov bl, ah
 55 
 56     mov [si], bl
 57     mov byte ptr [si + 1], 02h
 58     add si, 2
 59     mov [si], al
 60     mov byte ptr [si + 1], 02h
 61     add si, 2
 62     mov byte ptr [si], '/'
 63     mov byte ptr [si + 1], 02h
 64     add si, 2
 65     
 66     mov al, 7
 67     out 70h, al
 68     in al, 71h
 69 
 70     mov bl, al
 71     mov cl, 4
 72     and bl, 00001111b
 73     shr al, cl
 74     add bl, 30h
 75     add al, 30h
 76     
 77     mov ah, al
 78     mov al, bl
 79     mov bl, ah
 80 
 81     mov [si], bl
 82     mov byte ptr [si + 1], 02h
 83     add si, 2
 84     mov [si], al
 85     mov byte ptr [si + 1], 02h
 86     add si, 2
 87     mov byte ptr [si], ' '
 88     mov byte ptr [si + 1], 02h
 89     add si, 2
 90 
 91 
 92     ;hour min second
 93     mov al, 4
 94     out 70h, al
 95     in al, 71h
 96     
 97     mov bl, al
 98     mov cl, 4
 99     and bl, 00001111b
100     shr al, cl
101     add bl, 30h
102     add al, 30h
103     
104     mov ah, al
105     mov al, bl
106     mov bl, ah
107 
108     mov [si], bl
109     mov byte ptr [si + 1], 02h
110     add si, 2
111     mov [si], al
112     mov byte ptr [si + 1], 02h
113     add si, 2
114     mov byte ptr [si], ':'
115     mov byte ptr [si + 1], 02h
116     add si, 2
117 
118     mov al, 2
119     out 70h, al
120     in al, 71h
121 
122     mov bl, al
123     mov cl, 4
124     and bl, 00001111b
125     shr al, cl
126     add bl, 30h
127     add al, 30h
128     
129     mov ah, al
130     mov al, bl
131     mov bl, ah
132 
133     mov [si], bl
134     mov byte ptr [si + 1], 02h
135     add si, 2
136     mov [si], al
137     mov byte ptr [si + 1], 02h
138     add si, 2
139     mov byte ptr [si], ':'
140     mov byte ptr [si + 1], 02h
141     add si, 2
142     
143     mov al, 0
144     out 70h, al
145     in al, 71h
146 
147 
148     mov bl, al
149     mov cl, 4
150     and bl, 00001111b
151     shr al, cl
152     add bl, 30h
153     add al, 30h
154     
155     mov ah, al
156     mov al, bl
157     mov bl, ah
158 
159     mov [si], bl
160     mov byte ptr [si + 1], 02h
161     add si, 2
162     mov [si], al
163     mov byte ptr [si + 1], 02h
164     add si, 2
165     
166     mov ax, 4c00h
167     int 21h
168 codesg ENDS
169 END start

显示如下,如果一直循环到start标号处,可以动态更新时间,效果不错。

posted on 2012-11-09 14:55 左岸阳光 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/ACystalMoon/archive/2012/11/09/2762646.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值