鱼C论坛

 找回密码
 立即注册
查看: 1949|回复: 1

关于实验十四,又郁闷了

[复制链接]
发表于 2014-1-2 08:58:06 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 疯狂战圣 于 2014-1-2 08:59 编辑

今天在做实验十四,开头就碰上了问题,数没取出来,反复检查也没找出问题所在,代码如下:
  1. assume cs:code

  2. data segment
  3.   dw 0,0,0,0,0,0   ;定义一个数据段用来暂存取得的时间日期数据
  4. data ends

  5. code segment
  6.   start: mov ax,data
  7.          mov ds,ax    ;DS指向定义数据段
  8.                  mov ax,0     ;清下零
  9.                  mov bx,0     ;初始化,用来存放端口的内存偏移地址
  10.                  mov si,0     ;初始化,用来存放数据段的偏移地址
  11.                  mov dx,2     ;初始化,用来存放端口的一二次不同的偏移量
  12.                  mov cx,2     ;分二次循环,一次时间,一次日期
  13.         s1:         push cx      ;保存CX
  14.                  mov cx,3     ;三次循环。取分,秒,时,和年,月,日
  15.      s:  mov al,bl    ;AL=BL(内存偏移)
  16.          out 70h,al   ;把AL写入70H端口
  17.                  in al,71h    ;向71H端口读取一个数据放入AL
  18.                  mov al,[si]  ;把AL数据放入数据段
  19.                  add bx,dx    ;端口的内存偏移地址加上端口的内存偏移量
  20.                  add si,2     ;据数段偏移地址加2  
  21.                  loop s        
  22.                  mov bx,7     ;初始化,第二次循环的端口的内存偏移地址
  23.                  mov si,6     ;初始化,第二次循环数据段的偏移地址
  24.                  mov dx,1     ;改变第二次循环的偏移量
  25.                  pop cx       ;恢复CX值
  26.                  loop s1
  27.                  
  28.                  mov ax,4c00h
  29.                  int 21h
  30. code ends
  31. end start
复制代码
目前只做了取数部分,DEBUG里调试发现取不出数来,看了下别人的方法,有的人方法很好,我这方法虽然有点笨,但逻辑应该也没搞错啊,为什么会取不出数来呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-8-17 10:58:10 | 显示全部楼层
咱们码农有力量,嘿
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-14 04:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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