汇编网首页登录博客注册
hky987654321的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
文章收藏
友情链接

[2013-09-22 11:17] 第17章  移动光标

;程序名称:p17_3
;任务:为设置时钟而移动光标;按下“→”键光标右移,按下“←”键光标左移

assume cs:code 
data segment   
  db '2000/00/00 00:00:00','$',16,0   ;置16和0,作为16位乘数的低8位与高8位  
  db  9,0,0,8,0,0,7,0,0,4,0,0,2,0,0,0,0,0,'!'  ;置0使相乘后(dx)=0成立  
data ends   
code segment   

start:  mov ax,data                  
mov ds,ax                           
sub bx,bx            

Tm_cycle: mov ax,[bx].22 ;从data中取出指定位置的数据信息   
out 70h,al               ;将该单元地址传到地址端口70h
in  al,71h               ;从数据端口71h取出单元的数据   
or  [bx].3,al            ;or运算使30h及存入数据的个位均得保存   
and byte ptr [bx].3,00111111b  ;and运算清除残余使数据纯化为(30h + 个位) 
mul word ptr ds:[20]    ;乘以16,等同于ax左移4位后,在ah中得十位数      
add [bx].2,ah           ;传到data中相加,得其ASCII码
add bx,3                ;寻址增3个字节    
cmp byte ptr [bx].22,'!' ;判断是否读到结束标识符'!'                   
jne Tm_cycle            ;未读到,则继续读写时间
mov ah,2                ;置光标,设置2号子程序;准备输出时间
sub bh,bh               ;第0页                         
mov dh,12               ;第12行
mov dl,30               ;第30列                
int 10h                 ;用int 10h的2号子程序设置光标位置
sub dx,dx               ;置0
mov ah,9                ;置9号子程序  
int 21h                 ;用int 21h的9号子程序输出字符串
  
mov dl,49               ;完成输出后重设列号;准备移动光标
Cursor_s: mov ah,0      ;0号子程序
int 16h                 ;用int 16h,读取键盘输入符号
cmp ah,1ch              ;判断是否读到“Enter”键的扫描码
je Cursor_Ok            ;读到则转到结束,否则执行下一条代码
cmp ah,4bh              ;判断是否读到“←”的扫描码
jne Cursor_R            ;未读到,转Cursor_R
dec dl                  ;读到,则光标位置自减1,左移1
jmp short Cursor_L
Cursor_R: cmp ah,4dh    ;判断是否读到“→”的扫描码
jne Cursor_L            ;未读到,则转Cursor_L
inc dl                  ;读到,则光标位置自增1,右移1
Cursor_L: mov ah,2      ;置光标,设置2号子程序
sub bh,bh               ;第0页
mov dh,12               ;第12行
int 10h                 ;用int 10h的2号子程序设置光标位置
jmp short Cursor_s      ;转到Cursor_s,继续光标移动过程          

Cursor_Ok: mov ax,4c00h   
int 21h 

code ends   
end start
评论次数(0)  |  浏览次数(612)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码