骇客king 发表于 2015-6-4 12:28:16

关于一个代码段问题,感觉很奇怪

本帖最后由 骇客king 于 2015-6-4 12:29 编辑

      assume cs:code
      code segment

                ;第一步:把中断向量表中0号表项内容进行修改,使之指向我们自己编写
                ;的中断处理的入口地址
      start: mov ax,0
                        mov ds,ax
                        mov word ptr ds:,200h
                        mov word ptr ds:,0
                ;第三步,把我们刚才写好的0号中断处理程序拷贝到中断向量表在中
                ;p0号表项所指向的内存地址中0000:0200
                mov ax,cs
                mov ds,ax
                mov si,offset int0
                mov ax,0
                mov es,ax
                mov di,200h
                mov cx,offset int0end-offset int0
                cld
                rep movsb
                ;第四步引发中断
                mov ax,1000h
                mov bh,0
                div bh
               
                mov ax,4c00h
                int 21h
                ;第二步:编写自己的中断处理程序,实现在屏幕中间显示字符串功能
                int0:jmp short int0start
                         db"aaaaaaaaaaaa"
                int0start:mov ax,0b800h
                                                      mov es,ax;配置显存首地址0b800
                                                ;拷贝到显存地址空间
                                                      mov ax,cs
                                                      mov ds,ax
                                                      
                                                      mov si,202h
                                                      mov di,12*160+36*2
                                                      mov cx,12
                                                      s:mov al,ds:
                                                                mov es:,al
                                                      inc si
                                                      add di,2
                                                      loop s
                                                      
                                                      mov ax,4c00h
                                                      int 21h
                                                      int0end:nop
                code      ends
                        end start
               

报错 5个错误,全是error A2062: Missing or unreachable CS,提示没有代码段,然后我把assume cs:code
      code segment换了一下位置,code segment放最前边 assume cs:code 编译就没有错误了,我是哪里小问题晕了吗?编译过了,运行什么显示都没有,应该显示一堆aaaa啊



南郊居士 发表于 2015-6-4 12:28:17

没细看,但是我粘贴楼主的代码,编译是通过的,字符我也看到了

一个字都没改,也许楼主在无意中解决了问题

丝雨人 发表于 2015-6-5 12:23:53

不知道对不对:第二步si初始化可能出问题,你确定数据地址为202h么。建议在数据地址做的标号,然后 mov si,offset 标号。

ryxcaixia 发表于 2015-6-5 12:49:13

混鱼币
混鱼币
混鱼币
混鱼币
混鱼币

回锅丶肉 发表于 2015-6-6 00:12:08

混鱼币:lol::lol::lol::lol::lol::lol:

骇客king 发表于 2015-6-7 21:57:20

问题在于,我在mac 10.10下写的代码,拿到win xp下运行的,里边参杂了很多别东西,所以乱七八糟了
页: [1]
查看完整版本: 关于一个代码段问题,感觉很奇怪