遵义网站开发公司电话,iis网站属性,公司概况简介,西部数码网站管理助手 提权第14章 端口 检测点14.1 #xff08;1#xff09;.编程#xff0c;读取CMOS RAM的2号单元的内容。
mov al,2 ;向al写入2
out 70,al ;将2送入端口70h
in al,71 ;从端口71h读取2号单元的内容在CMOS RAM中用6个字节存放当前时间#xff08;以BCD码形式存放#xff09;…第14章 端口 检测点14.1 1.编程读取CMOS RAM的2号单元的内容。
mov al,2 ;向al写入2
out 70,al ;将2送入端口70h
in al,71 ;从端口71h读取2号单元的内容在CMOS RAM中用6个字节存放当前时间以BCD码形式存放地址02中存放的是分。 即从2号单元中读到的内容是当前时间的分钟。如下图所示: 当前分钟为59分
程序运行后al中内容如下 2.编程向CMOS RAM的2号单元写入0。
mov al,2
out 70,al
mov al,0
out 71,al检测点14.2 编程用加法和移位指令计算axax*10 提示ax ×10ax×2ax×8。 如:计算2 ×10 20
mov bx,2 ;将2放入bx中
mov cl,3 ;将3放入cl中移位位数
shl bx,cl ;将bx中的内容左移3位
mov ax,bx ;将移位后的数据暂存到ax中
mov bx,2 ;将2放入bx
shl bx,1 ;左移1位
add ax,bx ;加到ax中实验14 访问CMOS RAM 编程以“年/月/日 时:分:秒的格式显示当前的日期、时间。 注意CMOS RAM中存储着系统的配置信息除了保存时间信息的单元外不要向其他的单元中写入内容否则将引起一些系统错误。
assume cs:codedata segmentdb 9,8,7,4,2,0db // ::
data endscode segment
start:mov ax,data mov ds,ax ;ds指向数据段CMOS RAM时间单元地址mov ax,0b800h mov es,ax ;es指向显存空间mov di,0 ;使用di访问时间单元地址mov si,0 ;使用si访问显存空间mov cx,6 ;循环6次s:push cx ;cx入栈mov al,ds:[di] ;将时间单元地址送入alout 70h,al ;将时间单元地址送入70h端口in al,71h ;从71h端口读取时间数据送入almov ah,al ;al送入ahmov cl,4 ;4送入cl移位位数shr ah,cl ;ah左移4位分离10位and al,00001111b ;分离个位add ah,30h ;十位转换成ASCIIadd al,30h ;个位转换成ASCIImov byte ptr es:[160*1240*2si],ah ;十位写入显存空间mov byte ptr es:[160*1240*2si2],al ;个位写入显存空间mov al,ds:[di6] ;取出间隔字符放入almov byte ptr es:[160*1240*2si4],al ;间隔字符写入显存空间inc di ;di1指向下一个字符add si,6 ;si6指向下一个显存空间pop cx ;cx出栈loop s ;重新循环mov ax,4c00hint 21hcode ends
end start将上面程序在DOS中运行后效果如下