. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验9 请高手指点,谢谢  [待解决] 回复[ 3次 ]   点击[ 254次 ]  
wanglitao1982
[帖 主]   [ 发表时间:2010-06-04 20:15 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-05-03 19:44
assume cs:codesg ds:datasg  ;在屏幕中间分别显示绿色(02H),绿底红色(24H)
datasg segment              ;白底蓝色(71H)的字符串'welcome to masm!'
db 'welcome to masm!'       ;16个字,32个字节
datasg ends

codesg segment
start:
mov ax,codesg
mov cs,ax               ;程序段与cs相联

mov ax,0b8000h
mov es,ax               ;附加段地址为0b8000H:0 

mov ax,datasg
mov ds,ax 
mov bx,0               ;数据段

mov si,0 
                        ;80*25模式一共有80列160个字节,要显示16个字符,所以从第64列开始(ES:[di])才是显示屏的正中位置               
                        ;正中间, 25/2=12.5  第12行,  80*0.5=40  也就是第12行40列为正中间. 40列为80字节处,在此处左右各存放16个字节
mov cx,16
s:
mov al,ds:[bx] 
  
mov ah,02h                 ;es段中的第11行
mov es:[6e0h+64+si],ax  
          
mov ah,24h        
mov es:[780h+64+si],ax     ;es段中的第12行

mov ah,71h  
mov es:[820h+64+si],ax     ;es段中的第13行

inc bx
add si,2
loop s

mov ax,4c00h
inc 21h

codesg ends
end start



编译时不能通过,请各位指点,谢谢
wanglitao1982
[第1楼]   [ 回复时间:2010-06-04 20:44 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-05-03 19:44
更改
mov ax,4c00h
int 21h
michaelen
[第2楼]   [ 回复时间:2010-06-05 13:14 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-06-05 12:48
error A2004: symbol type conflict
error A2004: symbol type conflict
warning A4023: with /coff switch, leading underscore required for start address : start

assume cs:codesg,es:datasg (少逗号) 还有一个分号要改
剩下的不知道了,编译出现以上错误提示
wanglitao1982
[第3楼]   [ 回复时间:2010-06-07 19:47 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-05-03 19:44
谢谢2楼的提示,标号加上后,还有两个地方错误
第1点错误
mov ax,codesg 
mov cs,ax               ;程序段与cs相联 
要把这两行删去,我不是太清楚,请各位高手讲解

第2点错误
mov ax,0b8000h 
mov es,ax               ;附加段地址为

mov ax,0b8000h 应该为 mov ax,0b800h  .因为我们传送到ES里面是一个段地址.段地址*16就是我们需要的物理地址 0b8000h
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved