ufo9876 发表于 2015-12-26 11:55:20

实验9根据材料编程 ,我想用栈来试一下,结果,,请帮助

本帖最后由 康小泡 于 2015-12-27 12:26 编辑

assume cs:code ds:data
       data segment
             db 'welcome to masm!'
          data ends
          
   code segment
      start:mov ax,data
            mov ds,ax
              mov bx,15
      
             mov ax,0B800h    ;error A2206:missing operator in expression
             mov ss,ax
                mov sp,740h
                mov        cx,16                        
            s:mov        al,
                mov ah,01110001B
                push ax
                dec bx
                loop s
                       
                  mov ax,0B800h
                  mov ss,ax
                  mov sp,7e0h
                   mov        cx,16                        
                s0:mov        al,
                  mov ah,11001010B
                  push ax
                  dec bx
                  loop s0

                        mov ax,0B800h
                        mov ss,ax
                        mov sp,880h
                        mov        cx,16                        
                   s1:mov        al,
                     mov ah,01000010B
                        push ax
                        dec bx
                        loop s1
                       
                        mov ax,4c00h
                        int 21h
                       
                        code ends
end start                       
1,我用movax,0B800h,这个命令有问题嘛?为什么提示指令丢失
2,这个题的最后提示闪烁的效果要在DOS全屏下看到,DOS怎么样才能全屏?
3,请老师帮我看一下,这个程序能运行嘛

爱你没错 发表于 2015-12-26 13:49:10

mov ax,0b800H是没有问题,问题是你的mov ss,ax B800H是显存地址你把显存地址做栈地址你觉得有可能吗?编译器认为你访问了不该访问的内存地址,就像在windows该内存不能read一样,所以编译器报错咯

爱你没错 发表于 2015-12-26 13:50:48

顺便跟你说一下你要闪的话应该设置屏幕属性字节的第四位为1

ufo9876 发表于 2015-12-27 14:48:39

哦,我明白了,感谢指点
页: [1]
查看完整版本: 实验9根据材料编程 ,我想用栈来试一下,结果,,请帮助