鱼C论坛

 找回密码
 立即注册
查看: 2942|回复: 7

跪求爷爷奶奶们解释下下面这段文字里的公式是河意

[复制链接]
发表于 2011-10-9 17:31:20 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
【dos下是80*25的显示。基址是b800:0000每个字符占两个字节(一个要显示的字符,一个是颜色,颜色在高位)要显示的位置是x,y则首字母应该放在=base+y*80*2+x*2】


这是我在百度提问如何计算屏幕的中间位置的,它的回答都能看懂可就是最后的公式看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-9 18:13:56 | 显示全部楼层
1行是80列,从0~79,也就是说1行输出的内容加上颜色信息是160字节,只要这个明白了就可以看懂了,理解不了也不用再去纠结它了,谁还在DOS下编程,过去的就让它过去吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-10-9 18:28:56 From FishC Mobile | 显示全部楼层
topcookie 发表于 2011-10-9 18:13
1行是80列,从0~79,也就是说1行输出的内容加上颜色信息是160字节,只要这个明白了就可以看懂了,理解不了也 ...

base=基地址 也就是B800H y=页数 那X=什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-9 18:33:46 | 显示全部楼层
本帖最后由 风扫地 于 2011-10-9 18:37 编辑

y是行数吧。。X是列数吧。。


每行80个字符。一个字符的显示需要由显示内容(1个字节)和显示方式(1个字节)  两个属性  所以一行就要80×2
至于列数     就是 2*x
所以字符应该   base +160*行数+2*列数   其中base   0B8000H ..化为段地址就是0B800H了。  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-9 18:37:14 | 显示全部楼层
本帖最后由 topcookie 于 2011-10-9 18:45 编辑

X,Y定义并不能单纯看成行或列,那只是我们想像出来的,每1行输出的内容加上颜色信息最多就是160字节,超过160就要排到下1行,1行是80列,列从0~79,行是从0~24,你先不要看公式,基地址是B800H,在第1行第1列输出你会怎么作 ,当然是基地址+160+2,为什么加160,因为第0行占了160字节,为什么再加2,因为第0列占2字节
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-10-9 18:55:39 From FishC Mobile | 显示全部楼层
topcookie 发表于 2011-10-9 18:37
X,Y定义并不能单纯看成行或列,那只是我们想像出来的,每1行输出的内容加上颜色信息最多就是160字节,超过 ...

那比如我 db ‘haonan’ 它要在中间位置显示是不是 0B8000h +12*160+(160-6)/2 这样正好在屏幕的中间位置了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-9 19:33:51 | 显示全部楼层
本帖最后由 topcookie 于 2011-10-9 19:36 编辑

就是这样的,最底层并不关心是第几行第几列,只是线性顺序排放的,一行放不下了就放到下一行
另外你的标题太夸张了,给搞汇编的太跌价了,呵呵,玩笑了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-10-9 19:58:05 From FishC Mobile | 显示全部楼层
topcookie 发表于 2011-10-9 19:33
就是这样的,最底层并不关心是第几行第几列,只是线性顺序排放的,一行放不下了就放到下一行
另外你的标题 ...

assume ds:bbb,cs:ooo
bbb segment
db ‘haonan’
bbb ends

ooo segment

start:   mov ax,bbb
         mov ds,ax
         mov si,0
         mov ax,0b800h
         mov es,ax
         mov di,12*160+(160-6)/2h
         mov cx,6
loops:  mov al,[si]
         mov [di],al
         inc si
         add di,2
         loop loops
        mov ah,4ch
        mov al,0
        int 21h
   ooo ends
  end start

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

本版积分规则

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

GMT+8, 2024-10-8 22:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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