汇编语言程序设计:[13]打字计时练习

 时间:2024-10-30 06:22:52

1、打开masm汇编编译程序,新建一个masm源文件脚本。DATAS SEGMENT ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV AH,4CH INT 21HCODES ENDS END START

汇编语言程序设计:[13]打字计时练习
汇编语言程序设计:[13]打字计时练习

2、在正文中输入我们的程序代码,并将文件命名为dazi.asmstack segme艘绒庳焰nt para stack 'sta艘早祓胂ck' db 256 dup(0)top label wordstack endsdata segment para public 'data'buffer db 16h dup(0)bufpt1 dw 0bufpt2 dw 0kbflag db 0prompt db 'xiaobo welcome you to play',0dh,0ah,'*****Designed by [email protected]!*****',0dh,0ah,'^Henan University of Economics and Law^date:2014/4/24',0dh,0ah,' *please practise typing*',0dh,0ah,'$'scantab db 0,0,'1234567890-=',8,0 db 'qwertyuiop[]',0dh,0 db 'asdfghjkl;',0,0,0,0 db 'zxcvbnm,./',0,0,0 db ' ',0,0,0,0,0,0,0,0,0,0,0,0,0 db '789-456+1230.'evenoldcs9 dw ?oldip9 dw ?str1 db 'abcd efgh ijkl mnop qrst uvwx yz.' db 0dh,0ah,'$'str2 db 'there are some newspapers on the table.' db 0dh,0ah,'$'str3 db 'there are some clouds in the sky.' db 0dh,0ah,'$'str4 db 'she always eats her lunch at noon.' db 0dh,0ah,'$'str5 db 'i do not like autumn and winter.'crlf db 0dh,0ah,'$'colon db ':','$'evensaddr dw str1,str2,str3,str4,str5count dw 0sec dw 0min dw 0hours dw 0save_lc dw 2 dup(?)data endscode segment assume cs:code,ds:data,es:data,ss:stackmain proc farstart: mov ax,stack mov ss,ax mov sp,offset top push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax ; mov ah,0 ; mov al,4 ; int 21h ; mov ah,0bh ; mov bh,0 ; mov bl,4 ; int 11h mov ah,35h mov al,09h int 21h mov oldcs9,es mov oldip9,bx push ds mov dx,seg kbint mov ds,dx mov dx,offset kbint mov al,09h mov ah,25h int 21h pop ds mov ah,35h mov al,1ch int 21h mov save_lc,bx mov save_lc+2,es push ds mov dx,seg clint mov ds,dx mov dx,offset clint mov al,1ch mov ah,25h int 21h pop ds in al,21h and al,11111100b out 21h,al first: mov ah,0 mov al,3 int 10h mov dx,offset prompt mov ah,9 int 21h mov si,0next: mov dx,saddr[si] mov ah,09h int 21h mov count,0 mov sec,0 mov min,0 mov hours,0 stiforever: call kbget test kbflag,80h jnz endint push ax call dispchar pop ax cmp al,0dh jnz forever mov al,0ah call dispchar call disptime lea dx,crlf mov ah,09h int 21h add si,2 cmp si,5*2 jne next jmp firstendint: cli push ds mov dx,save_lc mov ax,save_lc+2 mov ds,ax mov al,1ch mov ah,25h int 21h pop ds push ds mov dx,oldip9 mov ax,oldcs9 mov ds,ax mov al,09h mov ah,25h int 21h pop ds sti retmain endpclint proc near push ds mov bx,data mov ds,bx lea bx,count inc word ptr[bx] cmp word ptr[bx],18 jne return call inctadj: cmp hours,12 jle return sub hours,12return: pop ds sti iretclint endpinct proc near mov word ptr[bx],0 add bx,2 inc word ptr[bx] cmp word ptr[bx],60 jne exit call inctexit: retinct endpdisptime proc near mov ax,min call bindec mov bx,0 mov al,':' mov ah,0eh int 10h mov ax,sec call bindec mov bx,0 mov al,':' mov ah,0eh int 10h mov bx,count mov al,55d mul bl call bindec retdisptime endpbindec proc near mov cx,100d call decdiv mov cx,10d call decdiv mov cx,1 call decdiv retbindec endpdecdiv proc near mov dx,0 div cx mov bx,0 add al,30h mov ah,0eh int 10h mov ax,dx retdecdiv endpkbget proc near push bx cli mov bx,bufpt1 cmp bx,bufpt2 jnz kbget2 cmp kbflag,0 jnz kbget3 sti pop bx jmp kbgetkbget2: mov al,[buffer+bx] inc bx cmp bx,16h jc kbget3 mov bx,0kbget3: mov bufpt1,bx pop bx retkbget endpkbint proc near push bx push ax in al,60h push ax in al,61h or al,80h out 61h,al and al,7fh out 61h,al pop ax test al,80h jnz kbint2 mov bx,offset scantab xlat scantab cmp al,0 jnz kbint4 mov kbflag,80h jmp kbint2kbint4: mov bx,bufpt2 mov [buffer+bx],al inc bx cmp bx,16h jc kbint3 mov bx,0kbint3: cmp bx,bufpt1 jz kbint2 mov bufpt2,bxkbint2: cli mov al,20h out 20h,al pop ax pop bx sti iretkbint endpdispchar proc near push bx mov bx,0 mov ah,0eh int 10h pop bx retdispchar endpcode ends end start

汇编语言程序设计:[13]打字计时练习

3、运行我们编辑的文件打字计时练习的程序,在缓冲区中预放了一些字母,运行时,可按照屏幕上显示的字母输入练习,每输入完一行按回车键后,可显示出练习输入的时间.

汇编语言程序设计:[13]打字计时练习
汇编语言程序设计:[13]打字计时练习
  • Wps自定义目录操作方法
  • wps演示中如何制作取长补短型目录
  • WPS使用技巧之如何自动生成目录
  • PDF文件字体的设置
  • WPS文字怎么设置章节导航
  • 热门搜索
    预防艾滋病手抄报 关于普通话的手抄报 语文手抄报图片 民族大团结手抄报 环保手抄报资料 元宵手抄报 关于中国梦的手抄报 关于春天的手抄报图片 抗击病毒的手抄报 抗疫英雄手抄报