鱼C论坛

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

看到17.3章,纠结了很久,求帮忙

[复制链接]
发表于 2016-9-9 21:28:24 | 显示全部楼层 |阅读模式

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

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

x
纠结了半天看不懂,总偏移地址怎么算出来的,160乘以ah、add dl,dl看不懂
QQ截图20160909212452.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-10 00:19:56 | 显示全部楼层
DOS中一行可以显示80个字符

      例如:01    02
                 04     88      01中存放的是颜色   02中存放的是要显示的东西

从上面可以看出 显示一个字符就要用到2个空间 (1个字)

由可得出 DOS的一行有160个字符,160 * n  = 行数

例如 : 在第八行的第22个位置显示一个字母
   160*8 :指向第八行   
   因为每显示一个字符要花2个位置,所以 22+22 就是第22个位置

mov ax,0b800H
mov ds,ax
mov al,160
mov dl,8
mul dl
mov di,ax ; 此时di中存放的是第八行的地址
mov dl ,22 ;  22代表第22个字符显示的位置,因为显示1个字符要占2个位置所以 22+22
add dl,dl
mov dh,0 ; 把dh清0
add di,dx;  di中原本就存放了第八行的地址在加上第22个字符的显示位置  ,就相当于第八行第22个显示位的地址了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-6-26 07:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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