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

我的博客

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

[2012-05-15 18:02] 实验十四(扩展)

图片载入中
assume cs:code

code segment

 db 32h,9,8,7,4,2,0,0,"// ::",0   ;设置端口单元号和字符

start:mov ax,cs
     mov ds,ax
  mov ax,0b800h
  mov es,ax
s:  xor bx,bx
  mov di,13*160+2*28
  mov cx,7                 ;初始化各寄存器
  
time:push cx
  mov al,[bx]
  out 70h,al
  in al,71h
  mov ah,al
  mov cl,4
  shr ah,cl
  and al,0fh
  add ax,3030h
  pop cx
  ;以上为读取并转换bcd码
  
  mov es:[di],ah
  mov es:[di+2],al
  ;将转换好的数据放到显存

  cmp byte ptr [bx],32h
  je cty
  ;这个功能是为了第一次不传送符号
  
  mov al,[bx+7]
  mov es:[di+4],al
  ;将符号送入显存

  inc bx                    ;指向下一端口号和字符
  add di,6                  ;指向显存下一地址
lp:  loop time
  
  in al,60h
  cmp al,1
  test al,1
  jz s
  mov ax,4c00h
  int 21h
  
cty: inc bx
  add di,4
  jmp lp
  
code ends
end start
评论次数(9)  |  浏览次数(258)  |  类型(汇编作业) |  收藏此文  | 

[  fpamc   发表于  2012-05-15 18:05  ]

不知道还可不可以简化!
欢迎各位提意见哈!

[  dxiaolin   发表于  2012-05-15 21:06  ]

还在研究实验14,不错!勤于钻研,值得学习

[  fpamc   发表于  2012-05-15 22:42  ]

没……前些日子复习着……正好今天下午复习完。每个题都重新做了一次。嘿,这次不错,带世纪带动态的40代码!

[  tomato   发表于  2012-05-15 22:44  ]

有些乱,看一下cty处的这几条指令,有些不太合理,要么写成独立的子程序,要么不要跟主程序分开,比如,写在mov ax,4c00h int 21h这两条指令之间。

[  fpamc   发表于  2012-05-15 22:51  ]

如果……写在哪里,不会影响退出吗?

[  tomato   发表于  2012-05-15 23:31  ]

写在mov ax,4c00h int 21h这两条指令上面,可以通过添加标号和跳转指令解决退出问题。

[  fpamc   发表于  2012-05-15 23:36  ]

呃……又要增加指令……这样的话……又多了两条指令,多了几个字节……

我想过了,如果是大一点的程序,我这样子写很不好。
但是为了减少指令数……就整形了,变成了这样……●﹏●

[  tomato   发表于  2012-05-15 23:38  ]

有些情况下不要吝啬指令,关键是清晰,易读,逻辑合理。

[  fpamc   发表于  2012-05-15 23:42  ]

恩,明白了……

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码