. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验9 不知道错在哪。。。提示error A2009: Symbol not defined: BNX  [待解决] 回复[ 5次 ]   点击[ 216次 ]  
wherer
[帖 主]   [ 发表时间:2010-07-24 12:21 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-22 19:06
大家帮忙看看啊谢谢了。。还有这个程序哪个地方需要改的吗??


谢谢

assume cs:code ds:data
data segment
abc db 'welcome to masm!'
data ends
code segment
  start:mov ax,data
        mov ds,ax
        mov bx,280H
        mov ax,B800H;显存区段地址
        mov es,ax
        mov si,280H;显存区偏移地址
        
        mov cx,15
      s:;
        处理'welcome'
        mov al,ds:[bx]
        mov es:[si+81],al
        mov es:[si+82],02H;绿色字
     
        ;处理'to'
        mov al,ds:[bx+9]
        mov es:[si+97],al
        mov es:[si+98],42H;红色绿底字

        ;处理masm!
              mov al,ds:[bx+12]
        mov es:[si+A0],al             
        mov es:[si+A1],17H;白底蓝字

        ;做循环准备
        inc bx
        add si,2

        loop s
        
        mov 4c00h
        int 21h
        
code ends
end start
masmaster
[第1楼]   [ 回复时间:2010-07-24 12:24 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
mov ax,B800H;显存区段地址  ;B前面少了个0
 mov es,ax
wherer
[第2楼]   [ 回复时间:2010-07-24 12:25 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-22 19:06
mov bx,280H 

改为mov bx,0吧。。失误了
wherer
[第3楼]   [ 回复时间:2010-07-24 12:30 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-22 19:06
谢谢。。改了。。但还是依然出现那个错误啊
wherer
[第4楼]   [ 回复时间:2010-07-24 13:42 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-22 19:06
做出来了。。但只有绿色有效果 其余的没效果。。什么意思啊

里面行和列的数据都是参照别人看出来的。。自己算的话怎么算啊??谢谢


assume cs:code ds:data
data segment
abc db 'welcome to masm!'
data ends
code segment
  start:mov ax,data
        mov ds,ax
        mov bx,0
        mov ax,0B800H;显存区段地址
        mov es,ax
        mov si,280H;显存区偏移地址
        
        mov cx,16
      s:

        mov al,ds:[bx]
        mov byte ptr es:[si+720h],al
        mov byte ptr es:[si+721h],02H
     
        inc bx
        add si,2
        loop s

        ;做循环准备


        mov cx,16
      s0:
        mov al,ds:[bx]
        mov byte ptr es:[si+7c0h],al
        mov byte ptr es:[si+7c1h],42H
     
        inc bx
        add si,2
        loop s0


        mov cx,16
      s1:
        mov al,ds:[bx]
        mov byte ptr es:[si+860h],al
        mov byte ptr es:[si+861h],17H
     
        inc bx
        add si,2
        loop s1

        mov ax,4c00h
        int 21h
        
code ends
end start
wherer
[第5楼]   [ 回复时间:2010-07-24 13:46 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-22 19:06
啊。。原来忘记每次输出都设回原来的值。。但行和列的数据怎么算的啊。。谢谢!!


assume cs:code ds:data
data segment
abc db 'welcome to masm!'
data ends
code segment
  start:mov ax,data
        mov ds,ax
        mov bx,0
        mov ax,0B800H;显存区段地址
        mov es,ax
        mov si,280H;显存区偏移地址
        
        mov cx,16
      s:

        mov al,ds:[bx]
        mov byte ptr es:[si+720h],al
        mov byte ptr es:[si+721h],02H
     
        inc bx
        add si,2
        loop s

        ;做循环准备


        mov bx,0
        mov si,280h
        mov cx,16
      s0:
        mov al,ds:[bx]
        mov byte ptr es:[si+7c0h],al
        mov byte ptr es:[si+7c1h],42H
     
        inc bx
        add si,2
        loop s0


        
        mov bx,0
        mov si,280h
        mov cx,16
      s1:
        mov al,ds:[bx]
        mov byte ptr es:[si+860h],al
        mov byte ptr es:[si+861h],17H
     
        inc bx
        add si,2
        loop s1

        mov ax,4c00h
        int 21h
        
code ends
end start
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved