[用汇编语言编写一个时钟程序能显示时分秒的还要有秒表就是计]STACK1 SEGMENT STACK DW 200 DUP (?) STACK1 ENDS DATA SEGMENT SPACE DB 1000 DUP (' ') PATTERN DB 6 DUP (' '),0C9H,26 DUP (0CDH),0BBH,6 DUP (' ') DB 6 DUP (' '),0...+阅读
编程:以“年/月/日 时:分:秒”的格式,显示当前的日期、时间。
assume cs:code
code segment
s:db 9,8,7,4,2,0
start:mov ax,cs
mov ds,ax
mov si,offset s ;ds:si指向标号S
mov ax,0b800h
mov es,ax ;es存放显示缓冲区段地址
mov di,0
lo:mov cx,3
day:push cx
mov al,ds:[si]
out 70h,al
in al,71h ;al存放日期
mov cl,4
mov ah,al
shr ah,cl
and al,00001111b ;将高位和低位的数据放在ah,al
add ah,30h
add al,30h
mov es:[12*160+30*2+di],ah ;日期高10位放到显存
mov es:[12*160+30*2+di+2],al;日期低10位放到显存
mov byte ptr es:[12*160+30*2+di+4],'/'
inc si
add di,6
pop cx
loop day
sub di,2
mov byte ptr es:[12*160+30*2+di],' ' ;去除最后的符号
add di,2
mov cx,3
time:push cx
mov al,ds:[si]
out 70h,al
in al,71h ;al存放日期
mov cl,4
mov ah,al
shr ah,cl
and al,00001111b ;将高位和低位的数据放在ah,al
add ah,30h
add al,30h
mov es:[12*160+30*2+di],ah ;日期高10位放到显存
mov es:[12*160+30*2+di+2],al;日期低10位放到显存
mov byte ptr es:[12*160+30*2+di+4],':'
inc si
add di,6
pop cx
loop time
sub di,2
mov byte ptr es:[12*160+30*2+di],' ' ;去除最后的符号
mov si,0
mov di,0
in al,60h
cmp al,10h
je quit
jmp lo ;上四句为动态显示时间
quit:mov ax,4c00h
int 21h
code ends
end start
以下为关联文档:
怎么用汇编语言把系统时间给显示出来?急用!顺便能给注释吗cursor equ 45Hattrib equ 2fhcode segment assume cs:code,ds:codestart: jmp gooldcur dw ?OLD1C DW 2 DUP(?)NEWINT1C: PUSHF CALL DWORD PTR CS:OLD1C push ax PUSH BX...
求一个用汇编语言编写时钟的程序只要能在pc机上显示时分秒就行1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 5...
如何用微机汇编语言编写时钟程序assume cs:codesg,ds:data data segment db "00/00/00 00:00:00",'$' data ends codesg segment start: mov ax,data mov ds,ax mov cx,6 mov bx,0 mov ah,0 mov al,9 s: push...
用汇编语言乘法指令实现两个字节相乘的程序并转换成十六进制数显示code segment assume cs:code org 100h start: jmp bbb x db 11h y db 12h z dw ? msg1 db 13,10,' ','$' bbb: push cs pop ds push cs pop es mov al,x mov bl,y mul bl m...
汇编语言将两个字节相乘的结果显示?这是我前几天的作业,给你参考一下,我也是新手,呵呵 seg1 segment stack stack db 256 dup('H') seg1 ends data segment var1 db 3 var2 db 5 data ends code segment assume c...
51单片机汇编语言编乘法和除法子程序;(r3r2r1r0) = (r7r6) * (r5r4), r4-r7 unchanged mul_word:mov b,r6 mov a,r4 mul ab mov r0,a mov r1,b mov r2,#0 mov r3,#0 mov a,r7 mov b,r4 mul ab add a,r1 mov r1,...
汇编语言键盘输入两个数相乘code segment assume cs:code,ds:date start: mov AH,01H int 21H ;输入第一个字符 mov BL,AL;转存 sub BL,30H;ASCII码转换 mov AH,01H int 21H ;输入第二个字符 sub AL,30H m...
汇编语言实现定点原码两位乘法入口条件:被乘数在R2、R3中,乘数在R6、R7中。 出口信息:乘积在R2、R3、R4、R5中。 影响资源:PSW、A、B、R2~R7 堆栈需求: 2字节 MULD: MOV A,R3 ;计算R3乘R7 MOV B,R7 MUL AB MOV...
汇编语言监测点2理解起来也很简单 寻址能力是16位的 也就是说偏移地址是 0H~FFFFH 很明显当偏移地址是0H的时候是最大值 这个楼主已经知道了就不说了 至于最小值为什么是1001H 其实题目设置...