鱼C论坛

 找回密码
 立即注册
查看: 2961|回复: 3

[学习笔记] 《王爽汇编》实验14

[复制链接]
发表于 2018-5-30 17:50:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 leader4 于 2018-5-30 17:52 编辑

虽然越来越难了,但感觉反而是写的越来越顺利了。
甚至翻回看之前自己遇到的难点,也都算不上是难点了。
总算感觉有一点入了编程的门了。
这个实验虽然仍旧没有一次编译通过,但大思路是没有任何问题的~
而且在编写过程中,发现需要写大量重复代码时,意识到可以使用之前例题里的方法减少书写量,一下大大缩减了代码量
这种会了的感觉真爽~
  1. ;要求:以“年/月/日 时:分:秒”的格式显示当前日期。
  2. ;         9  8  7  4  2  0
  3. ;思路:从CMOS RAM取数据放入内存,从内存统一写入显存
  4. ;
  5. assume cs:code


  6. table segment
  7.         db 'yy/mm/dd hh:mm:ss',0
  8. table ends

  9. code segment

  10. site:        db 9,8,7,4,2,0
  11. start:
  12.         mov ax,cs
  13.         mov ds,ax
  14.         mov si,offset site

  15.         mov ax,table
  16.         mov es,ax
  17.         mov di,0

  18.         mov cx,6
  19. ok:       
  20. ;取数据
  21.         push cx
  22.         mov al,[si]
  23.         out 70h,al
  24.         in al,71h

  25. ;加工数据
  26. ;十位
  27.         mov ah,al
  28.         mov cl,4
  29.         shr ah,cl
  30. ;个位
  31.         and al,00001111b
  32. ;ascii化
  33.         add ah,30h
  34.         add al,30h
  35. ;写入内存
  36.         mov es:[di],ah
  37.         mov es:[di+1],al

  38.         inc si
  39.         add di,3
  40.         pop cx
  41.         loop ok

  42. ;写入显存
  43.         mov ax,0b800h
  44.         mov ds,ax
  45.         mov si,0
  46.         mov di,0

  47. lp_start:
  48.         mov cx,es:[di]
  49.         jcxz lp_end
  50.         mov al,es:[di]
  51.         mov byte ptr [si+160*12+30*2],al
  52.         mov al,es:[di+1]
  53.         mov byte ptr [si+160*12+30*2+2],al

  54.         add di,2
  55.         add si,4
  56.         jmp short lp_start

  57. lp_end:
  58.         mov ax,4c00h
  59.         int 21h
  60. code ends
  61. end start
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-21 15:46:25 | 显示全部楼层
为什么显示这段程序里面,si的增量为4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-18 08:51:05 From FishC Mobile | 显示全部楼层
为啥那里si要加4?好像没用到si吧???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-12 09:48:50 | 显示全部楼层
数据段两个两个的放 di为2,si为4;但是为啥不一个一个放
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 14:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表