精华内容
下载资源
问答
  • 汇编 显示系统时间

    2011-07-09 10:29:30
    汇编 显示系统时间 接收用户键入的命令,显示系统当前的时间或日期。 用汇编语言编写源程序,上机调试,进行修改,最后能正确得到运行结果。
  • 汇编显示系统时间

    2012-03-17 16:30:41
    汇编语言实现显示系统时间的源代码和相关文档
  • 汇编课设内容,要求通过写显存显示系统时间,还有定时闹铃功能,通过键盘控制显示位置,背景色变化等。刚刚做完,与大家分享一下吧
  • 汇编语言课程设计内容,通过写显存动态显示系统时间年月日,定时闹铃,编辑音乐,通过键盘控制显示位置及改变背景色等功能。刚刚做好,发布共享一下吧。
  • 这是自己做的汇编课程设计 显示系统时间 并且有定时闹铃和倒计时闹铃功能
  • 1.程序结构:定义三个子程序。一个是显示时间(动态显示);一个是显示日期。 2.系统时间为24小时格式,转换为12小时 3.数字用大字显示
  • B 调用系统时间 CBCD码与ASCII码的转换 D 将时间数存入显存区 E 定时与倒计时 F 设置响铃的音乐 G 全日制/半日制 H 设置显示背景和字体颜色以及显示的位置的改变 I 运行结果图 第三章 总结 第四章 参考文献
  • 汇编语言编写的现实系统时间的源程序,时钟可更换背景
  • 用16位的汇编语言编写的程序,可以显示系统时间
  • 汇编语言编写的显示系统时间程序。80x86
  • 汇编程序 显示或隐去系统时间 左右SHIFT键 同时按下 在输入ENTER键 隐去系统时间 左右SHIFT键 再次按下 显示系统时间
  • 经典汇编程序,程序思路清晰,简单易懂。经调试改程序能正确运行,有不足的地方还请大家指教。
  • 汇编读取系统时间

    2017-12-10 21:29:58
    汇编编写,年月日,时分秒,实时显示,可做秒表,每条语句都有注释,下载即用
  • 汇编语言课设报告(显示系统时间+闹铃+源码)
  • 汇编大作业右上角显示系统时间 代码在报告中
  • 汇编语言 在屏幕右上角显示系统时间 可以运行
  • 显示系统时间以及倒计时之后响铃 设置显示背景颜色及大小
  • 微机原理课程设计,asm格式,显示系统时间,已运行,无错误!
  • DOS下汇编的一个动态显示系统时间的小程序
  • 动态的显示系统时间,自己觉得界面很漂亮!其他的大家看了就明白了,多了不说,应该不会浪费你的5分
  • 汇编实现)显示系统时间

    千次阅读 2008-12-05 22:17:00
    今天看到老师出的汇编的课程设计,是要完成一个显示系统时间的功能.根据要求上提供的源代码,很快的就实现了,但我想老师不会要求这么简单的,于是我想接下来的几天里就想办法完善一下,主要就是图形画界面显示,增加...

     今天看到老师出的汇编的课程设计,是要完成一个显示系统时间的功能.根据要求上提供的源代码,很快的就实现了,但我想老师不会要求这么简单的,于是我想接下来的几天里就想办法完善一下,主要就是图形画界面显示,增加年月日,增加时间的设置功能等,这个简单的可以供大家参考一下!

     

     

    code    segment 'code'
    assume  cs:code,ds:code
    org 100h
    start:  jmp install
    msg     db       'Current time is: '
    time0   db ?,?
            db ':'
    time1   db ?,?
            db ':'
    time2   db ?,?,0,0
    oldint1c        dd ?

    newint1c: push  ax
              push  bx
              push  cx
              push  dx
              push  si
              push  di
              push  es
              mov   ax,0200h   ;获取系统时间,ch→hours cl→minutes DH→seconds,均为BCD码格式
              int   1ah
              mov   al,ch
              lea   si,time0
              call  bcd
              mov   al,cl
              lea   si,time1
              call  bcd
              mov   al,dh
              lea   si,time2
              call  bcd
              mov   ax,0b800h   ;显存地址      采用直接写显存的方法输出字符
              mov   es,ax       ;es:di 指向显存地址
              mov   di,54*2d
              lea   si,msg
    disp:     mov   al,cs:[si]
              inc   si
              or    al,al
              jz    disp0        ;cs=ds
              cld
              stosb
              inc   di        ;将cs:si指向的一个字节传送到es:di
              jmp   disp
    disp0:    pop   es
              pop   di
              pop   si
              pop   dx
              pop   cx
              pop   bx
              pop   ax
              jmp   cs:oldint1c    ;新1CH中断的事情做完后调用原来的1CH中断
    bcd:      mov   ah,al
              shr   ah,1
              shr   ah,1
              shr   ah,1
              shr   ah,1
              and   al,0fh
              add   ax,'00'
              xchg  ah,al
              mov   cs:[si],ax
              ret
    install:  push  cs
              pop   ds
              mov   ax,351ch    ;获取中断向量ES:BX指向中断向量
              int   21h
              mov   word ptr oldint1c,bx
              mov   word ptr oldint1c+2,es
              lea   dx,newint1c
              mov   ax,251ch   ;设置中断向量  DS:DX指向中断向量
              int   21h
              mov   dx,offset install+120h   ;+10H即可,因为如果驻留程序的长为36,如果不
              mov   cl,04h                ; 加10H则计算的节为2,而实际应该为3节
              shr   dx,cl
              mov   ah,31h  ;结束并驻留 DX:保留的长度(内存大小单位为节)
              int   21h
    code ends
    end start

    展开全文
  • 汇编课程设计 包括 题目,设计思想,流程图,……
  • 汇编语言显示系统时间代码分析(14)

    千次阅读 2009-10-22 10:48:00
     如果要显示系统时间,MS-Windows为我们提供了两个函数,用来设置光标位置的控制台函数和现实系统时间的函数。使用这两个函数之前,需要首先定义两个预定义的结构: COORD STRUCT X WORD ? Y WORD ?COORD ENDS

    代码来自于《Intel汇编语言程序设计》(第四版)第10章----结构和宏。

     

    如果要显示系统时间,MS-Windows为我们提供了两个函数,用来设置光标位置的控制台函数和现实系统时间的函数。使用这两个函数之前,需要首先定义两个预定义的结构:

     

     

    COORD STRUCT

               X WORD ?

               Y WORD ?

    COORD ENDS

     

    SYSTEMTIME STRUCT

           wYear WORD ?

           wMonth WORD ?

           wDayOfWeek WORD ?

           wDay WORD ?

           wHour WORD ?

           wMinute WORD ?

           wSecond WORD ?

           wMillisecond WORD ?

    SYSTEMTIME ENDS

     

    在原书中这两个结构体在SmallWin.inc文件中定义,而SmallWin.inc文件位于编译器的INCLUDE目录中,Irvine32.inc引用了SmallWin.inc文件。

     

    我们来看看一下返回当前系统时间并在指定的屏幕位置显示的程序清单:

     

    TITLE Structures                                (ShowTime.asm)

    INCLUDE Irvine32.inc

    .data

    sysTime SYSTEMTIME <>

    XYPos COORD <10,5>

    consoleHandle DWORD ?

    colonStr BYTE ":",0

     

    .code

    main PROC

    ; Get the standard output handle for the Win32 Console.

            INVOKE GetStdHandle , STD_OUTPUT_HANDLE

            mov consoleHandle, eax

    ; Set the cursor position and get the system time.

            INVOKE SetConsoleCursorPosition , consoleHandle , XYPos

            INVOKE GetLocalTime , ADDR sysTime

    ; Display the system time ( hh : mm : ss).

            movzx eax,sysTime.wHour                     ; hours

            call WriteDec

            mov edx,offset colonStr                          ; ":"

            call WriteString

            movzx eax,sysTime.wMinute                   ; Minutes

            call WriteDec

            mov edx,offset colonStr                          ; ":"

            call WriteString

            movzx eax,sysTime.wSecond                  ; Seconds

            call WriteDec

     

            call Crlf

            call Crlf

            call WaitMsg                                            ; "Press Enter..."

            exit

    main ENDP

    END main

     

     

    程序中使用的定义来自于SmallWin.inc。

     

    STD_OUTPUT_HANDLE EQU -11

    SYSTEMTIME STRUCT . . . (参考以上的定义)

    COORD STRUCT . . . (参考以上的定义)

    GetStdHandle PROTO,

          nStdHandle:DWORD

     

    GetLocalTime PROTO,

          lpSystemTime:PTR SYSTEMTIME

     

    SetConsoleCursorPosition PROTO,

          nStdHandle:DWORD,

          coords:COORD

     

     

     

    首先,要想获取系统时间,可以调用MS-Windows的GetLocalTime函数并向他传递SYSTEMTIME结构的地址:

     

    .data

    sysTime SYSTEMTIME <>

    .code

    INVOKE GetLocalTime , ADDR sysTime

     

    此时,函数GetLocalTime 将把系统时间返回保存至sysTime中。

     

    然后,就可以返回某一时间值,例如:

     

    movzx eax,sysTime .wYear

    call WriteDec

     

    便返回了年的时间,并且打印出来。

     

     

    当Win32程序想要产生屏幕输出时,需要调用GetStdHandle函数返回标准的控制台输出句柄(一个整数):

     

    .data

    consoleHandle DWORD ?

    .code

    INVOKE GetStdHandle , STD_OUTPUT_HANDLE

    mov consoleHandle,eax

     

    此时,调用GetStdHandle 函数,并传递STD_OUTPUT_HANDLE常量,将返回标准控制台的句柄到eax中。

     

    得到标准输出句柄之后,接着要设置屏幕光标位置,可以调用MS-Windows的SetConsoleCursorPosition函数,这个函数需要一个控制台句柄和一个COORD结构变量作为参数:

     

    .data

    XYPos COORD <10,5>

    .code

    INVOKE SetConsoleCursorPosition,consoleHandle,XYPos

     

     

     在代码中使用的指令MOVZX (move with zero-extend)指令用于将源操作数的内容拷贝到目的操作数中,并将该值零扩展至16位或32位。该指令仅适用于无符号整数,例如:

     

    mov        bx,0A69Bh

    movzx    eax,bx          ; EAX = 0000A69Bh

    movzx    edx,bl           ; EDX = 0000009Bh

    movzx    cx,bl              ; CX = 009Bh

    展开全文
  • 汇编课程设计(显示系统时间,本人学生!!!)
  • 汇编语言编写的获取系统时间的汇编语言程序;运行后显示系统时间。其中包括了进制转换,系统中断等内容。
  • 这是一个显示系统时间的程序,运行时,在屏幕的右上角将以“时:分:秒”的形式 显示本机系统的时间。 该程序只能在DOS下运行。
  • 汇编 实时显示系统时间 年月日信息

    千次阅读 2007-04-03 13:21:00
    编写一个程序,在屏幕上实时地显示日期和时间(例如:2007-4-12 15:32:58显示为3:32:20 P.M. Saturday,April 12,2007)直到任意一个键被按下才退出程序。 showyear macro char push ax push si push cx ...

    编写一个程序,在屏幕上实时地显示日期和时间(例如:2007-4-12 153258显示为332:20 P.M. Saturday,April 12,2007)直到任意一个键被按下才退出程序。 

     
    showyear macro char
     push ax
     push si
     push cx
     push dx
     push bx
     push di
            mov     ax,char
            mov     si, offset divisors
            mov     di, offset results                    
            mov     cx,5  
    aa:
            mov     dx,0           
            div     word ptr [si]   ;除法指令的被除数是隐含操作数,此处为dx:ax,商ax,余数dx
            add     al,48           ;商加上48即可得到相应数字的ASCII码
            mov     byte ptr [di],al       
            inc     di                               
            add     si,2                          
            mov     ax,dx                       
            loop    aa
            mov     cx,4   
            mov     di, offset results
    bb:
            cmp     byte ptr [di],'0'   ;不输出前面的0字符   
            jne     print
            inc     di                          
            loop    bb
    print:
            mov     dx,di                      
            mov     ah,9
            int     21h 
           
            pop di
            pop bx
            pop dx
            pop cx
            pop si
            pop ax
    endm

    DISP MACRO CHAR  ;显示字符
     PUSH AX
     PUSH DX
     
     MOV DL,CHAR 
     MOV AH,2
     INT 21H

     POP DX
     POP AX
    ENDM

    GETNUM MACRO CHAR ;显示数字
    PUSH AX
    PUSH DX
    PUSH CX
     MOV AL,CHAR
     AAM
     MOV DH,AL
     MOV DL,AH
     OR DL,30H
     MOV AH,2
     INT 21H 
     
     MOV DL,DH
     OR DL,30H
     
     MOV AH,2
     INT 21H
    POP CX
    POP DX
    POP AX
    ENDM

    GETWEEK MACRO CHAR   ;显示星期
     PUSH AX
     PUSH DX
     PUSH SI
     PUSH CX
     
     LEA SI,D_TAB

     MOV AL,CHAR
     XOR AH,AH
     MOV CX,AX
     LOOP1:INC SI
        INC SI
      LOOP LOOP1
     
     MOV DX,[SI]  
     MOV AH,9
     INT 21H
     
     POP CX
     POP SI
     POP DX
     POP AX
    ENDM

    GETMONTH MACRO CHAR   ;显示月份
     PUSH AX
     PUSH DX
     PUSH SI
     PUSH CX
     
     LEA SI,M_TAB

     MOV AL,CHAR
     DEC AL
     XOR AH,AH
     MOV CX,AX
     
     LOOP2:INC SI
        INC SI
      LOOP LOOP2
     
     MOV DX,[SI]  
     MOV AH,9
     INT 21H
     
     POP CX
     POP SI
     POP DX
     POP AX
    ENDM

    DATAS SEGMENT
     divisors        DW 10000, 1000, 100, 10, 1
     results          DB 0,0,0,0,0,"$"        ;存放五位数ASCII码
     BUF DB 'A$'
     BUF1 DB 'YUE$'
     
     D_TAB DW SUN,MON,TUE,WED,THU,FRI,SAT
     M_TAB DW JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DCE,TIM
     
     SUN DB 'Sunday$'
     MON DB 'Monday$'
     TUE DB 'Tuesday$'
     WED DB 'Wednesday$'
     THU DB 'Thursday$'
     FRI DB 'Friday$'
     SAT DB 'Saturday$'

     JAN DB 'January$'
     FEB DB 'February$'
     MAR DB 'March$'
     APR DB 'April$'
     MAY DB 'May$'
     JUN DB 'June$'
     JUL DB 'July$'
     AUG DB 'August$'
     SEP DB 'September$'
     OCT DB 'October$'
     NOV DB 'November$'
     DCE DB 'December$'
     TIM DB '.M. $'

    DATAS ENDS

    STACKS SEGMENT
        ;此处输入堆栈段代码
    STACKS ENDS

    CODES SEGMENT
        ASSUME CS:CODES,DS:DATAS,SS:STACKS
    START:
        MOV AX,DATAS
        MOV DS,AX
     
    LLL:
    mov ah,2
    mov bh,0
    mov dh,0
    mov dl,0
    int 10h


     MOV AH,2CH
     INT 21H
     GETNUM CH
     DISP 3AH
     GETNUM CL
     DISP 3AH
     GETNUM DH
     DISP 00H
     CMP CH,12
     JA P
     DISP 41H
     JMP A
    P:  DISP 50H
    A:  MOV DX,M_TAB+24
     MOV AH,9
     INT 21H
     
     MOV AH,2AH
     INT 21H

     GETWEEK AL 
     DISP 2CH  
     GETMONTH DH
     DISP 00H
     GETNUM DL 

     DISP 2CH 
     showyear CX 
     

     MOV AH,06H
     MOV DL,0FFH
     INT 21H
     JE LLL
      
        MOV AH,4CH
        INT 21H
    CODES ENDS

        END START

    展开全文
  • 这是我的课程设计,代码绝对正确,同时每个代码后面都有详细的注解,应该可以给很多人帮助吧!
  • 显示系统当前时间汇编程序

    千次阅读 2013-11-01 10:10:48
    assume cs:code ...int 21h 显示字符串,要求以$结束 table db 9,8,7,4,2,0 ;各时间量的存放单元 data ends code segment start: mov ax,data mov ds,ax mov si,offs

    assume cs:code

    data segment

    time db 'yy/mm/dd hh:mm:ss$';int 21h 显示字符串,要求以$结束

    table db 9,8,7,4,2,0 ;各时间量的存放单元

    data ends

    code segment

    start:

    mov ax,data

    mov ds,ax

    mov si,offset table

    mov di,offset time

    mov cx,6

    s:

    push cx

    mov al,ds:[si];读端口内单元号

    out 70h,al;单元号送入70h端口

    in al,71h;从71端口读取单元号对应地址的数据

    mov ah,al

    mov cl,4

    shr ah,cl;将压缩BCD码分为两个BCD码

    and al,00001111b

    add ah,30h

    add al,30h

    mov ds:[di],ah

    mov ds:[di+1],al;写进time

    inc si

    add di,3

    pop cx

    loop s

    mov dx,offset time

    mov ah,9

    int 21h

    code ends

    end start

    功能是显示当前系统的时间,主要是cmos RAM端口知识应用,时间依照年,月,日,时,分,秒顺序存在单元9、8、7、4、2、0单元。

    详见王爽汇编第十四章端口

    注:非原创!

    展开全文
  • ①调用系统时间 ②设置定时响铃时间:既用固定时间响铃,也用倒计时方式 ③设置响铃的音乐(可以事先做2-3个音乐) ④设置显示24小时或12小时、 ⑤设置显示背景和字体颜色 ⑥可以调入缺省设置

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,866
精华内容 21,546
关键字:

汇编显示系统时间