zoukankan      html  css  js  c++  java
  • 《自己动手写操作系统》pmtest2笔记

    ;DispReturn模拟一个回车的显示,(让下一个要显示的字符在下一行的开头处显示),其中edi始终指向要显示的下一个字符的位置。
    ;   ------------------------------------------------------------------------
    DispReturn:
    push eax
    push ebx
    mov eax, edi ;
    mov bl, 160  ;
    div bl         ; eax/bl 执行后al=当前行号 
    and eax, 0FFh; 只保留行号,列号清0
    inc eax         ; eax+=1,使eax为当前行的下一行
    mov bl, 160  ;
    mul bl          ; eax*bl,eax为当前行的下一行的开始
    mov edi, eax ; 使edi指向当前行的下一行的开始
    pop ebx
    pop eax    

    ret
    ;   DispReturn   结束---------------------------------------------------------

    注1: 80*25彩色字模式的显示显存在内存中的地址为B8000h~BFFFH,共32k.向这个地址写入的内容立即显示在屏幕上边.在80*25彩色字模式 下共可以显示25行,每行80字符,每个字符在显存中占两个字节,第一个字节是字符的ASCII码.第二字节是字符的属性,(80字符占160个字节)。

    2. test 把两个操作数进行"与"操作,不保存运算结果,只设置标志位, 一般用来测试寄存器是否为空
    text eax,eax  //来检测eax是否为空
    jnz xxxxx       //不为空就跳

    .1:
        lodsb                ;load a byte from ds:si to al --- I
        test    al, al            ;if al =0 then zf changed ,the string is end with 0 意思是循环加载PMMessage直到最后一个字符
        jz    .2             ;当字符加载完毕,就执行.2
        mov    [gs:edi], ax       
        add    edi, 2
        jmp    .1
    .2:    ; 显示完毕

    AL和AL相与可以测试AL是否是0,因为他改变了ZF

  • 相关阅读:
    KMP算法小结
    算法二叉搜索树之AVL树
    算法导论之红黑树的学习
    算法导论小结(一)
    感悟或摘抄
    js中神奇的东西
    简单了解webservice
    用<![CDATA[]]>将xml转义为 纯文本
    简单了解soap协议
    java写webservice接口
  • 原文地址:https://www.cnblogs.com/pavkoo/p/3522702.html
Copyright © 2011-2022 走看看