什么是原始MS-DOS源代码中的DI,EI和UP指令?

问题描述

我正在研究OS的汇编语言项目。为此,我通过最初的操作系统获得了知识。在此过程中,我尝试了解MS-DOS 1.25。但是,当我运行此文件IO.ASM时,我从下面给出的某些行的代码中得到了四个错误,在这里我用“

INIT:
XOR BP,BP       ; Set up 
;stack just below I/O 
;system.
MOV SS,BP
MOV SP,BIOSSEG*16

IF  INTINP-1
MOV AL,0FFH     ; Mask all 
;interrupts.
OUTB BASE+3 <------this
ENDIF

IF  INTINP
DI  ; Set up <------ this
;keyboard interrupt vector.
MOV [BP+64H],KBINT
MOV [BP+66H],CS
EI <-----this
ENDIF

MOV [BP+4*38H],PRNFCB
MOV [BP+4*38H+2],CS
PUSH CS
POP DS
;
; Initialize time-of-day 
;clock.
;
MOV SI,STCTAB
MOV CX,4        ;Initialize 
;4 registers
UP  <------this
INITSTC:
LODB
OUT STCCOM      ;Select 
;register to initialize
LODB
OUT STCDATA
LODB
OUT STCDATA
LOOP    INITSTC

IF  SERIAL
MOV CX,4

我知道上述给定的错误很明显。但是请告诉我如何修改代码。 预先感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)