书上说是首先分析屏幕上的行列位置和显存地址的对应关系
我见很多朋友在子程序的都是这样写的:
mov ax,0b800h
mov es,ax
mov al,0a0h ;每行大小
mul dh ;每行大小和行数相乘
mov bx,ax ;得每行的起始地址es:[bx]
每行大小是160个字节,为什么用行数乘以每行字节数就能得出N行的偏移地址呢?
我举个例子:如果每行是4个字节,现计算第5行的偏移地址
0,1,2,3
4,5,6,7
8,9,10,11
12,13,14,15
16,17,18,19
20,21,22,23
按4乘以5的方法去计算,应该是20开始吧,但实际应该是从16开始的
请教一下大家,为什么会这样做呢?谢谢 |