王爽<<汇编语言>> 实验十四

  1 ;以"年/月/日 时:分:秒"的格式, 显示当前的日期, 时间
  2 assume cs:code
  3 code segment
  4 main:
  5         mov al,9
  6         out 70h,al                        ;告诉CMOS RAM将要访问的存储单元编号
  7         in  al,71h            ;从该存储单元中读入数据
  8
  9         mov ah,al
 10         mov cl,4
 11         shr al,cl
 12         add al,30h            ;显示的年份的十位的ascii码
 13         and ah,00001111b
 14         add ah,30h            ;显示的年份的个位的ascii码
 15
 16         mov bx,0b800h
 17         mov es,bx
 18         mov byte ptr es:[160*12+30*2],al
 19         mov byte ptr es:[160*12+31*2],ah  ;显示年
 20
 21         mov byte ptr es:[160*12+32*2],‘/‘ ;显示‘/‘
 22
 23         mov al,8
 24         out 70h,al                        ;告诉CMOS RAM将要访问的存储单元编号
 25         in  al,71h            ;从该存储单元中读入数据
 26
 27         mov ah,al
 28         mov cl,4
 29         shr al,cl
 30         add al,30h            ;显示的年份的十位的ascii码
 31         and ah,00001111b
 32         add ah,30h            ;显示的年份的个位的ascii码
 33
 34         mov byte ptr es:[160*12+33*2],al
 35         mov byte ptr es:[160*12+34*2],ah  ;显示月
 36
 37         mov byte ptr es:[160*12+35*2],‘/‘ ;显示‘/‘
 38
 39         mov al,7
 40         out 70h,al                        ;告诉CMOS RAM将要访问的存储单元编号
 41         in  al,71h            ;从该存储单元中读入数据
 42
 43         mov ah,al
 44         mov cl,4
 45         shr al,cl
 46         add al,30h            ;显示的年份的十位的ascii码
 47         and ah,00001111b
 48         add ah,30h            ;显示的年份的个位的ascii码
 49
 50         mov byte ptr es:[160*12+36*2],al
 51         mov byte ptr es:[160*12+37*2],ah  ;显示日
 52
 53         mov byte ptr es:[160*12+38*2],‘ ‘ ;显示‘ ‘
 54
 55         mov al,4
 56         out 70h,al                        ;告诉CMOS RAM将要访问的存储单元编号
 57         in  al,71h            ;从该存储单元中读入数据
 58
 59         mov ah,al
 60         mov cl,4
 61         shr al,cl
 62         add al,30h            ;显示的年份的十位的ascii码
 63         and ah,00001111b
 64         add ah,30h            ;显示的年份的个位的ascii码
 65
 66         mov byte ptr es:[160*12+39*2],al
 67         mov byte ptr es:[160*12+40*2],ah  ;显示时
 68
 69         mov byte ptr es:[160*12+41*2],‘:‘ ;显示‘:‘
 70
 71         mov al,2
 72         out 70h,al                        ;告诉CMOS RAM将要访问的存储单元编号
 73         in  al,71h            ;从该存储单元中读入数据
 74
 75         mov ah,al
 76         mov cl,4
 77         shr al,cl
 78         add al,30h            ;显示的年份的十位的ascii码
 79         and ah,00001111b
 80         add ah,30h            ;显示的年份的个位的ascii码
 81
 82         mov byte ptr es:[160*12+42*2],al
 83         mov byte ptr es:[160*12+43*2],ah  ;显示分
 84
 85         mov byte ptr es:[160*12+44*2],‘:‘ ;显示‘:‘
 86
 87         mov al,0
 88         out 70h,al                        ;告诉CMOS RAM将要访问的存储单元编号
 89         in  al,71h            ;从该存储单元中读入数据
 90
 91         mov ah,al
 92         mov cl,4
 93         shr al,cl
 94         add al,30h            ;显示的年份的十位的ascii码
 95         and ah,00001111b
 96         add ah,30h            ;显示的年份的个位的ascii码
 97
 98         mov byte ptr es:[160*12+45*2],al
 99         mov byte ptr es:[160*12+46*2],ah  ;显示秒
100
101
102         mov ax,4c00h
103         int 21h
104 code ends
105         end main 
时间: 2024-08-14 11:14:43

王爽<<汇编语言>> 实验十四的相关文章

王爽&lt;汇编语言&gt;实验十

实验十 3.数值显示(以下程序附带测试程序) 1 ;名称: dtoc 2 ;功能: 将dword型数据转变为表示十进制数的字符串,字符串以0为结尾 3 ;参数: (ax)=dword型数据低字 4 ; (dx)=dword型数据高字 5 ; ds:si指向字符串的首地址 6 ;返回: 无 7 assume cs:code 8 data segment 9 haha dd 4294967295 10 tata dd 16 dup(?) 11 data ends 12 code segment 13

王爽&lt; 汇编语言&gt;实验十二

1 ;此乃安装程序 2 ;功能:将8086cpu中断类型码为0 的中断向量设置为我们编写的中断服务程序入口地址 3 ;该中断在除法发送溢出的时候产生 4 5 assume cs:code 6 code segment 7 main: 8 mov ax,cs 9 mov ds,ax 10 mov si,offset do ;设置ds:si指向源地址 11 12 mov ax,0 13 mov es,ax 14 mov di,200h ;设置es:di指向目的地址 15 16 mov cx,offs

汇编语言(王爽)实验十

实验要求: 在屏幕的8行3列,用绿色显示data段中的字符串. data段的数据: 'welcome to masm!',0 实验分析: 建立在实验九的基础上. 定位:8行3列. 输出:只能输出welcome to masm! 寄存器太多,不能重用. 解决第一个问题:di为屏幕上的位置.dh存的行,dl存的是列 解决第二个问题:loop循环退出的条件是cx寄存器为0 把data段传入cx.如果是0.退出. 1 assume cs:code 2 data segment 3 db 'Welcome

王爽-汇编语言-综合研究四-不使用main函数编程

(一) 研究目的 使用C语言编程,我们一定要使用main函数么? (二) 研究过程 1) 最初的程序 首先,我们编写一个不写main函数的C语言程序. 程序如下: 在编译的过程中,没有发现错误.在链接的过程中发现出现的错误如下: 链接时出现Undefined symbol ‘_main’ in module c0s 这样的错误信息,可能main函数与c0s.obj这个文件有关系. 这时我们想,C语言编译之后的文件后缀名是什么?是.obj.那汇编语言编译后的文件名是什么?也是.obj.这两个文件有

王爽&lt;汇编语言&gt;实验十一 (附测试代码)

1 ;名称: letterc 2 ;功能: 将以0为结尾的字符串中的小写字母转变成大写字母 3 ;参数: ds:si指向字符串首地址 4 5 assume cs:code 6 7 data segment 8 db "Beginner's All-purpose Symbolic Instruction Code.",0 9 data ends 10 11 code segment 12 main: 13 mov ax,data 14 mov ds,ax 15 mov si,0 16

最强大的王爽汇编语言学习环境使用教程

最强大的王爽汇编语言学习环境使用教程 一.前言 这是采用VMwere Workstation 12 pro虚拟机软件,搭建的MS-DOS学习环境,在windowsXP/8/10及linux中均可以使用,在这个环境中,我集成了CCDOS中文系统,pdos中文系统,使用这些系统,可以进行中文输入与显示.还集成了,十分著名的汇编语言调试工具TR,它比debug更加强大.并且集成了适合王爽汇编语言学习的微软汇编语言编译器masm5和dos中最强大的文本编辑器 vim73 for DOS,这是一个支持彩色

【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十四:储存模块

实验十四比起动手笔者更加注重原理,因为实验十四要讨论的东西,不是其它而是低级建模II之一的模块类,即储存模块.接触顺序语言之际,“储存”不禁让人联想到变量或者数组,结果它们好比数据的暂存空间. 1. int main() 2. { 3. int VarA; 4. char VarB; 5. VarA = 20; 6. VarB = 5; 7. } 代码14.1 如代码14.1所示,主函数内一共声明两个变量VarA与VarB(第3~4行).VarA是两个字节的整型变量,VarB是一个字节的字符变量

王爽汇编实验九

1 ;实验九 2 assume cs:code,ds:data 3 data segment 4 db 'welcome to masm!' 5 data ends 6 7 code segment 8 start : 9 mov ax,data 10 mov ds,ax;定义数据段 11 12 mov ax,0B800h 13 mov es,ax;定义显示段 14 15 mov cx,16 16 mov si,0 17 mov di,10*160+80 ;将输出显示放在第10行中间 18 19

Packet Tracer 5.2实验(十四) 网络地址转换NAT配置

Packet Tracer 5.2实验(十四) 网络地址转换NAT配置 一.实验目标 理解NAT网络地址转换的原理及功能: 掌握静态NAT的配置,实现局域网访问互联网: 二.实验背景 公司欲发布WWW服务,现要求将内网Web服务器IP地址映射为全局IP地址,实现外部网络可访问公司内部Web服务器. 三.技术原理 网络地址转换NAT(Network Address Translation),被广泛应用于各种类型Internet接入方式和各种类型的网络中.原因很简单,NAT不仅完美解决了IP地址不足