| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 447 人关注过本帖
标题:求助 汇编编程出现问题
只看楼主 加入收藏
asdfbjha
Rank: 2
等 级:论坛游民
帖 子:12
专家分:24
注 册:2010-8-10
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
求助 汇编编程出现问题
8086指令
masm编译器
功能:访问CMOS RAM 实现时间输出 "年/月/日 时:分:秒"
以下指令出现两处错误

assume cs:code,ds:data
data segment
 rta db "yy/mm/dd hh:ff:ss$"
 ssa db 9,8,7,4,2,0
data ends
code segment
start:mov ax,data
      mov ds,ax
    t:mov si,offset rta
      mov di,0
      mov cx,6
    s:mov al,ssa[di]
      out 70h,al
      in  al,71h
      mov ah,al
      push cx
      mov cl,4
      shr ah,cl
      and al,00001111b
      add ah,30h
      add al,30h
      mov ds:[si],ah
      mov ds:[si].1,al
      add si,3
      add di,1
      pop cx
      loop s
      mov ax,0b800h
      mov es,ax
      mov di,160*12+32*2
      mov si,offset rta
      mov cx,17
    y:mov byte ptr es:[di],ds:[si]
      add di,2
      add si,1
      loop y
      in al,60h
      cmp al,1
      je ok
      jmp short t
   ok:mov ax,4c00h
      int  21h
code ends
end start   
不用 int 10h int21h 中断实现
谢谢!
搜索更多相关主题的帖子: 汇编 
2010-11-16 00:34
asdfbjha
Rank: 2
等 级:论坛游民
帖 子:12
专家分:24
注 册:2010-8-10
收藏
得分:0 
没有人能回答吗?  
2010-11-16 23:45
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:10 
程序代码:
assume cs:code,ds:data

data segment
    rta db "yy/mm/dd hh:ff:ss$"
    ssa db 9,8,7,4,2,0
data ends

code segment
start:
        mov ax,data
      mov ds,ax
t:       

        mov si,offset rta
      mov di,0
      mov cx,6
s:
    mov al,ssa[di]
      out 70h,al
      in  al,71h
      mov ah,al
      push cx
      mov cl,4
      shr ah,cl
      and al,00001111b
      add ah,30h
      add al,30h
      mov ds:[si],ah
      mov ds:[si+1],al
      add si,3
      add di,1
      pop cx
      loop s
     

      mov ax,0b800h
      mov es,ax
      mov di,160*12+32*2
      mov si,offset rta
      mov cx,17
y:
    mov al,[si]
    mov es:[di],al
      inc di
      mov byte ptr es:[di],07h
      inc di
      inc si
      loop y
     

      call delay
      in al,60h
      cmp al,1
      je ok
      jmp short t
ok:
    mov ax,4c00h
      int  21h
     

delay proc near
    push cx
    mov cx,0a000h
delay1:
    push cx
    mov cx,0b000h
delay2:
    loop delay2
    pop cx
    loop delay1
    pop cx
    ret
delay endp
code ends
end start 

2010-11-17 10:53
asdfbjha
Rank: 2
等 级:论坛游民
帖 子:12
专家分:24
注 册:2010-8-10
收藏
得分:0 
谢谢! 通过你无私的帮助我已经解决问题了. 不过我还是有些地方不明白,希望得到你的解惑.
问1:为什么我的程序会出现错误?  难道是内存与内存不能直接传送?
问2:你新加的delay子程序的功能是实现循环?  
       
2010-11-17 19:42
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:0 
1.恩,intel的处理器不能在内存与内存不能直接传送
2.delay是一个延时
2010-11-18 19:30
asdfbjha
Rank: 2
等 级:论坛游民
帖 子:12
专家分:24
注 册:2010-8-10
收藏
得分:0 
谢谢你的帮助!  
2010-11-18 19:37
快速回复:求助 汇编编程出现问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013277 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved