《王爽汇编》实验14
本帖最后由 leader4 于 2018-5-30 17:52 编辑虽然越来越难了,但感觉反而是写的越来越顺利了。
甚至翻回看之前自己遇到的难点,也都算不上是难点了。
总算感觉有一点入了编程的门了。
这个实验虽然仍旧没有一次编译通过,但大思路是没有任何问题的~
而且在编写过程中,发现需要写大量重复代码时,意识到可以使用之前例题里的方法减少书写量,一下大大缩减了代码量{:10_275:}
这种会了的感觉真爽~{:10_277:}
;要求:以“年/月/日 时:分:秒”的格式显示当前日期。
; 987420
;思路:从CMOS RAM取数据放入内存,从内存统一写入显存
;
assume cs:code
table segment
db 'yy/mm/dd hh:mm:ss',0
table ends
code segment
site: db 9,8,7,4,2,0
start:
mov ax,cs
mov ds,ax
mov si,offset site
mov ax,table
mov es,ax
mov di,0
mov cx,6
ok:
;取数据
push cx
mov al,
out 70h,al
in al,71h
;加工数据
;十位
mov ah,al
mov cl,4
shr ah,cl
;个位
and al,00001111b
;ascii化
add ah,30h
add al,30h
;写入内存
mov es:,ah
mov es:,al
inc si
add di,3
pop cx
loop ok
;写入显存
mov ax,0b800h
mov ds,ax
mov si,0
mov di,0
lp_start:
mov cx,es:
jcxz lp_end
mov al,es:
mov byte ptr ,al
mov al,es:
mov byte ptr ,al
add di,2
add si,4
jmp short lp_start
lp_end:
mov ax,4c00h
int 21h
code ends
end start
为什么显示这段程序里面,si的增量为4 为啥那里si要加4?好像没用到si吧??? 数据段两个两个的放 di为2,si为4;但是为啥不一个一个放
页:
[1]