a247171525 发表于 2011-2-10 15:53:54

请教高手 实验十四 访问CMOS RAM

自己在网上看了很多的程序 如下:
assume cs:code
      code segment
          s1:db "20??/??/?? ??:??:??",'$'
                s2:db 9,8,7,4,2,0
       

      
      start:mov ax,cs
                mov ds,ax
                        mov di,offset s1
               
                        mov si,offset s2
                        mov cx,6
               
       s:   push cx
            mov al,ds:
            out 70h,al
                        in al,71h
                        mov ah,al
                        mov cl,4
                        shr ah,cl
                        and al,00001111b
                        add ah,30h
                        add al,30h
                        mov word ptr ds:,ax
                        inc si
                        add di,3
                        pop cx
                        loop s
                       
                        mov ax,cs
                        mov ds,ax
                        mov dx,0
                        mov ah,9
                        int 21h
                       
                        mov ax,4c00h
                        int 21h
        code ends
end start       


不知道为什么在编译的时候总是出错,error A2008::db

yuyuhongss 发表于 2011-2-10 16:03:56

:loveliness:语法错误,把呐两个db前的冒号去掉就行了

a247171525 发表于 2011-2-10 16:50:59

回复 2# yuyuhongss


    db前面的两个冒号不是标号S1和S2的吗?    去掉以后   那还能取得标号的偏移地址码?

yuyuhongss 发表于 2011-2-10 17:09:02

恩哼,试试啊:loveliness:

a247171525 发表于 2011-2-10 17:22:55

回复 4# yuyuhongss


    恩试了一下   去掉那两个冒号后就可以了   这是不是一个规定啊,在DB等定义字符串的符号前标号应该省略冒号?在课本上没看到关于这方面的介绍。

yuyuhongss 发表于 2011-2-10 17:25:15

啊偶...沃野不知道:Q

a247171525 发表于 2011-2-11 12:04:45

在课本上的第16章有介绍, 可以加上冒号,也可以不加。为什么我的加冒号就错了啊。{:3_58:}

yuyuhongss 发表于 2011-2-11 12:31:45

编译器不支持呗

luyng19 发表于 2011-2-11 18:04:22

呵呵,纯学习了

復襍 发表于 2013-9-15 10:44:18

淡定...淡定...淡定...

ilboyvm 发表于 2014-10-22 20:58:23

机器码只能以二进制的形态让cpu去识别而在二进制形态下他有自己的opcode
页: [1]
查看完整版本: 请教高手 实验十四 访问CMOS RAM