. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  试验9 编译通过,但在XP下运行无反应!AMD的CPU!高手给看看  [待解决] 回复[ 1次 ]   点击[ 249次 ]  
kaen007186
[帖 主]   [ 发表时间:2010-05-07 20:19 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-09-01 06:43
assume cs:code,ds:data

data segment

        db 'welcome to masm!'
data ends

code segment

start:  mov ax,data
        mov ds,ax
        mov bx,0h

        mov ax,0b878h   书上说显存开始是B800:0000,25行的话,中间3行应该是12,13,14行,一行
        mov es,ax       160字节,也就是A0H,第12行为1920个字节,偏移地址为780H,所以12行段地址
        mov ah,02h       我写的是B878:0000
        mov dl,24h
        mov dh,71h       设置3种颜色

        mov cx,10h
     s1:mov al,ds:[bx]            
        mov es:[bp+40h],al        第12行
        mov es:[bp+0e0h],al       第13行第12行地址上 加了 AOH 的偏移,  
        mov es:[bp+180h],al       第14行第12行地址基础上 加了 两个A0H的偏移
    
        mov es:[bp+41h],ah        设置颜色 ,分别给3行
   
        mov es:[bp+0e1h],dl
     
        mov es:[bp+181h],dh
        add bp,02h
        inc bx
        loop s1


        mov ax,4c00h
        int 21h

code ends
end start

 高手给看看程序,应该没错吧,编译没错,但是XP下运行 无显示,用DEBUG跟踪程序,貌似无法修改显存数据,
在查看显存数据改动情况时,可以看见 右边现实 CS=XXXX   等信息
kaen007186
[第1楼]   [ 回复时间:2010-05-07 20:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-09-01 06:43
用DEBUG单步跟踪,运行完后,通过,小窗口中间 显示3行字 彩色的,

不过为什么用.EXE文件运行,无效果呢?
已经证明程序没问题。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved