鱼C论坛

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

关于实验十四,又郁闷了

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

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

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

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

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

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

code segment
  start: mov ax,data 
         mov ds,ax    ;DS指向定义数据段
                 mov ax,0     ;清下零
                 mov bx,0     ;初始化,用来存放端口的内存偏移地址
                 mov si,0     ;初始化,用来存放数据段的偏移地址
                 mov dx,2     ;初始化,用来存放端口的一二次不同的偏移量
                 mov cx,2     ;分二次循环,一次时间,一次日期
        s1:         push cx      ;保存CX
                 mov cx,3     ;三次循环。取分,秒,时,和年,月,日
     s:  mov al,bl    ;AL=BL(内存偏移)
         out 70h,al   ;把AL写入70H端口
                 in al,71h    ;向71H端口读取一个数据放入AL
                 mov al,[si]  ;把AL数据放入数据段
                 add bx,dx    ;端口的内存偏移地址加上端口的内存偏移量
                 add si,2     ;据数段偏移地址加2  
                 loop s        
                 mov bx,7     ;初始化,第二次循环的端口的内存偏移地址
                 mov si,6     ;初始化,第二次循环数据段的偏移地址
                 mov dx,1     ;改变第二次循环的偏移量
                 pop cx       ;恢复CX值
                 loop s1
                 
                 mov ax,4c00h
                 int 21h
code ends
end start
目前只做了取数部分,DEBUG里调试发现取不出数来,看了下别人的方法,有的人方法很好,我这方法虽然有点笨,但逻辑应该也没搞错啊,为什么会取不出数来呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-17 10:58:10 | 显示全部楼层
咱们码农有力量,嘿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-19 02:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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