鱼C论坛

 找回密码
 立即注册
查看: 2252|回复: 1

[争议讨论] 实验9 怎么样改变段地址才能在中间显示

[复制链接]
发表于 2012-3-9 14:16:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
assume cs:code,ds:data
data segment
db 'Welcome To Masm!'
db 42h,29h,4ah
data ends
code segment
start:mov ax,data
    mov ds,ax
    mov bx,0
   
    mov ax,0b840h;第一行中间地址
    mov es,ax
    mov si,0
   
    mov ah,0
    mov cx,16
   
  s:  mov al,[bx]
    mov es:[si],al
    mov es:[si+0a0h],al
    mov es:[si+140h],al
    mov al,ds:[16];送第一种颜色
    mov es:[si+1],al
    mov al,ds:[17];送第二种颜色
    mov es:[si+0a0h+1],al
    mov al,ds:[18];送第三种颜色
    mov es:[si+140h+1],al
   
    inc bx
    add si,2
    loop s
  
   
  
    mov ax,4c00h
    int 21h
code ends
end start   
   
   
   
  如题想知道怎么去改变段地址ES实现 在屏幕中间显示 字符呢  
   

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-9 17:13:10 | 显示全部楼层
本帖最后由 莫名其妙 于 2012-3-9 17:28 编辑

   mov ax,0b840h;第一行中间地址    这里用mov ax, 0B800h  方便计算  
; 当然你用B840h也可以不过后面计算显示器中间区域比较麻烦    还要计算当前位置到中间位置的偏移
;要想一步到位就直接0B8000H+中间位置的偏移[idata=160*12+2*30  ] 得出es 段地址 =B87C:000B
    mov es,ax                                                                                                     ;mov ax,0b87c
    mov si,0                                                                                                        ;mov es,ax
                                                                                                                        ;mov si,0bh
    mov ah,0
    mov cx,16



s:  mov al,[bx]                                         这里上面改成B800H的计算方法    要显示在中间需要每行加上idata   160*12+2*30
    mov es:[si],al   这里是第一行显示字符             ES:[SI+ 160*12+2*30]
    mov es:[si+0a0h],al   这里 第二行显示字符       ES:[SI+ 160*12+2*30 +0a0h]
mov es:[si+140h],al   这里第三行                     ES:[SI+ 160*12+2*30 +140h]
mov al,ds:[16];送第一种颜色                             下面的也要加 es:[si+ 160*12+2*30+1+偏移
    mov es:[si+1],al
    mov al,ds:[17];送第二种颜色
    mov es:[si+0a0h+1],al
    mov al,ds:[18];送第三种颜色
    mov es:[si+140h+1],al


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 13:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表