(第三章 11)克勤克俭用内存——DispStr函数显示字符串
DispStr调用方法:...
_szPMMessage:db"In Protect Mode now. ^-^",0Ah,0Ah,0;保护模式显示
szPMMessageequ_szPMMessage - $$
pushszPMMessage
callDispStr
add esp,4
DispStr实现:
DispStr:
pushebp
movebp,esp ;-->esp中放的是TopOfStack指针,指向栈顶(高地址)
pushebx
pushesi
pushedi
movesi,
movedi,
;_dwDispPos: dd(80 * 6 + 0) * 2; 屏幕第6行, 第0列,是屏幕上下一个显示的位置
;dwDispPosequ_dwDispPos- $$
movah,0Fh
.1:
lodsb;lodsb-->将esi中的一个字节放到AL中
testal,al
jz.2-->不是结束字符0
cmpal,0Ah;
jnz.3-->是“非回车的字符”
;是“回车”的时候
... ;作回车需要的相应处理
.3:
mov,ax
addedi,2
jmp.1
.2:
mov,edi
popedi
popesi
popebx
popebp
ret
页:
[1]