「汇编语言 第 3 版 王爽」- 参考答案:实验 14 访问 CMOS RAM

  CREATE BY JENKINSBOT
原文链接:「汇编语言 第 3 版 王爽」- 参考答案:实验 14 访问 CMOS RAM
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:EXP_14」
文章标识:「5f0102e9」

参考答案

assume cs:codeseg

codeseg segment
separator:
	db '/', '/', ' ', ':', ':'
date_index:
	db 9, 8, 7, 4, 2, 0 ; 这几个位置没啥规律,耽误我写循环

start:	
	mov ax, cs
	mov ds, ax 
	mov si, offset date_index
	mov bp, offset separator
	
	mov ax, 0B800H
	mov es, ax
	mov di, 0

	mov cx, 6
	loop_s0_start:
		; 提取日期的高位与低位
		push cx
		mov al, ds:[si]
		out 70H, al
		in al, 71H
		mov ah, al
		mov cl, 4
		shr ah, cl 			; 高位
		add ah, 30H
		and al, 00001111B 	; 地位
		add al, 30H
		pop cx
		
		; 显示日期
		mov dh, 2			; 用绿色,辨识度高
		mov dl, ah			; 显示十位
		mov es:[di], dx
		mov dl, al			; 显示各位
		mov es:[di+2], dx
		
		; 显示分割符号
		cmp cx, 1			; 最后循环没有分割符号显示,直接完成即可
		je loop_s0_end
		mov dl, ds:[bp]
		mov es:[di+4], dx

		add si, 1
		add bp, 1		
		add di, 6
		loop loop_s0_start
	loop_s0_end:
	
	mov ax, 4C00H
	int 21H
	
codeseg ends

end start

参考文献

CSDN/汇编语言王爽第三版答案
百度文库/汇编语言实验答案 (王爽)