Я сбит с толку, что значение переменной DPBBUF_SIZ, заданное ниже значения, заданного как (4472 + 15) / 16 и присвоенного переменной DPBBUF_SIZ, выражается в шестнадцатеричном или десятичном виде.пожалуйста, дайте мне знать, какое значение будет присвоено переменной varBale DPBBUF_SIZ.заранее спасибо.
DOSSIZE EQU 5000H
DPBBUF_SIZ DW (4472 + 15) / 16 ; my PROBLEM is that what value will
;be assigned to varible "DPBBUF_SIZ" here.
GOINIT:
CLD
XOR SI,SI
MOV DI,SI
IF MSVER
MOV CX,[MEMORY_SIZE]
CMP CX,1
JNZ NOSCAN
MOV CX,2048 ; START SCANNING AT 32K BOUNDARY
XOR BX,BX
MEMSCAN:INC CX
JZ SETEND
MOV DS,CX
MOV AL,[BX]
NOT AL
MOV [BX],AL
CMP AL,[BX]
NOT AL
MOV [BX],AL
JZ MEMSCAN
SETEND:
MOV [MEMORY_SIZE],CX
ENDIF
IF IBMVER OR IBMJAPVER
MOV CX,[MEMORY_SIZE]
ENDIF
NOSCAN:
MOV AX,CS
MOV DS,AX
ASSUME DS:SYSINITSEG
IF HIGHMEM
SUB CX,(DOSSIZE / 16) ; Leave room for DOS
SUB CX,CS:[DPBBUF_SIZ] ; Allow OEM to tune (my problem: what
;will be the final value of CX after this line or instruction)
ENDIF
SHR AX,1 ; Divide by 16 for paras
SHR AX,1
SHR AX,1
SHR AX,1
SUB CX,AX
MOV ES,CX
SHR CX,1 ; Divide by 2 to get words
REP MOVSW ; RELOCATE SYSINIT
ASSUME ES:SYSINITSEG
PUSH ES
MOV AX,OFFSET SYSIN
PUSH AX
....................
....more code here..
Я думаю, что данного кода будет достаточно, чтобы понять проблему.я делаю какую-то ошибку, пожалуйста, руководство.спасибо.