疯狂战圣 发表于 2014-1-2 08:58:06

关于实验十四,又郁闷了

本帖最后由 疯狂战圣 于 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,;把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里调试发现取不出数来,看了下别人的方法,有的人方法很好,我这方法虽然有点笨,但逻辑应该也没搞错啊,为什么会取不出数来呢?

智商是硬伤 发表于 2015-8-17 10:58:10

{:7_146:}咱们码农有力量,嘿{:7_146:}
页: [1]
查看完整版本: 关于实验十四,又郁闷了