微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 编写了屏幕显示字符串的代码但是就是运行不出来,求原因

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

时间:10-02 整理:3721RD 点击:
我用汇编写了一段向屏幕显示字符串的代码但是就是运行不出来  请各位好友看一下 帮帮忙 我是初学者 呵呵 下面是代码


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
        

首行assume cs:codesg,
还有你"mov si,160h"这句,这个160应该是2进制的,160h的话就不再第一页了
至于结尾的"s0:jmp short s0"应该没什么意义,好像是死循环
你是编译好直接运行的吗?在debug模式下试试,debug进去后,用g命令运行到程序结束,看看有没有效果。

嗯,好了,我换了个dosbox就可以了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top