code:clearseg - ikarishinjieva/unixV6-code-analyze-chs GitHub Wiki

Source

  • 将 内存 第i块 64字节 置零
  • 输入一个参数 i

0674 /* ------------------------- */

0675 .globl _clearseg

0676 _clearseg:

0677     mov PS,-(sp)

0678     mov UISA0,-(sp)

  • PS UISA0 保护入栈
  • UISD0 将在0681 保护入栈
  • 以上 将在0689 还原
0679     mov $30340,PS
  • 置 PS
    • 处理机优先级 置 7,关中断
    • 先前态 置 用户态
    • 当前态 置 核心态
0680     mov 6(sp),UISA0
  • UISA0 ← i
0681     mov UISD0,-(sp)

0682     mov $6,UISD0

  • UISD0 ← 6
    • 置段 为 可读写
0683     clr r0

0684     mov $32.,r1

0685 1:

0686     clr -(sp)

0687     mtpi (r0)+

0688     sob r1,1b

  • 将 第i块64字节置零
0689     mov (sp)+,UISD0

0690     mov (sp)+,UISA0

0691     mov (sp)+,PS

0692     rts pc

0693

Ref

Caller

⚠️ **GitHub.com Fallback** ⚠️