如何实现新的一条线

时间:2011-05-08 08:39:51

标签: assembly x86

我正在80x25的文本模式下工作,我期待一些以0结尾的字符串打印(之前没有CRLF)。那怎么能跳到下一行呢?我真正需要的是将es:edi(0:b8000)偏移量与下一个乘数160对齐,但我不知道如何以某种方式做到这一点。如果您已经这样做或有任何想法请与我分享或给我一个提示。我不希望任何中断和没有划分的解决方案。 thx stu

2 个答案:

答案 0 :(得分:0)

正如安德斯所说,我会做类似的事情:

nextlineoffset = offset + (160 - ((offset + 160) mod 160))

即,

  1. 添加一行抵消
  2. 减去额外的偏移量
  3. 它使用一个除法,但不需要乘法。

答案 1 :(得分:0)

switch一样的建筑怎么样?如果您只对80x25屏幕上的160个字符块感兴趣,则只需要考虑13个案例,这应该是CMP和条件跳转的可管理(可渲染)序列。