单片机/MCUwilliam hill官网
直播中

陈猛

10年用户 49经验值
擅长:模拟技术
私信 关注
[问答]

编写了屏幕显示字符串的代码但是就是运行不出来,求原因

我用汇编写了一段向屏幕显示字符串的代码但是就是运行不出来  请各位好友看一下 帮帮忙 我是初学者 呵呵 下面是代码




assume cs:codesg,ds:datasg
datasg segment
                db 'welcome to masm!'
datasg ends

codesg segment
        start:mov ax,datasg
                  mov ds,ax                ;初始化段寄存器
                  mov bx,0h                ;字符的递增
                  mov si,160                ;显存的偏移地址
                  mov ax,0b800h ;显存的段地址
                  mov es,ax      
                  mov cx,16     ;循环次数
                  
                s:mov al,ds:[bx]
                  mov ah,04h ;把字符放入显存
                  
                  mov es:[si],ax
          inc bx                  ;把字符属性放入显存
                  add si,2
                  loop s
               
                 
                  
                  
                  mov ax,4c00h
                  int 21h
                  codesg ends
                  end start
        

回帖(2)

z00

2014-4-2 09:15:21
首行assume cs:codesg,
还有你"mov si,160h"这句,这个160应该是2进制的,160h的话就不再第一页了
至于结尾的"s0:jmp short s0"应该没什么意义,好像是死循环

你是编译好直接运行的吗?在debug模式下试试,debug进去后,用g命令运行到程序结束,看看有没有效果。
举报

陈猛

2014-4-8 19:15:56
嗯,好了,我换了个do***ox就可以了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分