rjexp3.aqd

来自「显示屏相关程序实现显示屏点亮控制等功能.」· AQD 代码 · 共 79 行

AQD
79
字号
DATA	    SEGMENT
FIRST	    DB  99H
SECOND	DB  25H
THIRD	    DB  2 DUP(?)
MES1	    DB '*','$'
MES2	    DB '=','$'
DATA	    ENDS
STACK	SEGMENT PARA STACK 'STACK'
STAPN	DB 100 DUP(?)
TOP	EQU LENGTH STAPN
STACK	ENDS
CODE	SEGMENT
ASSUME	CS:CODE,DS:DATA,SS:STACK
START:	MOV     AX,DATA
	    MOV	DS,AX
	    MOV	AX,STACK
	    MOV	SS,AX
	    MOV	AX,TOP
	    MOV	SP,AX
	    MOV	BL,FIRST             ;被乘数送BL
	    MOV	CL,SECOND            ;乘数送CL
        MOV	DX,0                 ;部分积清0
	    MOV	AL,BL
AGAIN:	OR      AL,AL                
	    JZ	    DONE                 ;被乘数减到0则转结果显示
	    MOV	AL,DL
	    ADD	AL,CL
	    DAA                          ;乘数于部分积低位相加后调整 
	    MOV	DL,AL
	    MOV	AL,DH
	    ADC	AL,0
	    DAA                          ;往部分积高位送进位后调整
	    MOV	DH,AL
	    MOV	AL,BL
	    DEC	AL
	    DAS                          ;组合BCD码减法调整
	    MOV	BL,AL
	    JMP	    AGAIN
DONE:	LEA     BX,THIRD
	    MOV	[BX],DX
	    LEA	    SI,FIRST
	    CALL	DIS
	    XOR	AX,AX
	    MOV	AH,09H
	     LEA	DX,MES1             ;*
	     INT	21H
	     LEA	SI,SECOND
	    CALL	DIS
	    XOR	AX,AX
	     LEA	DX,MES2             ;=
	    MOV	AH,09H
	     INT	21H
	     LEA	SI,THIRD
	     INC	SI
	CALL	DIS
	DEC	SI
	CALL	DIS
	MOV	AX,4C00H         ;返回DOS
	INT	    21H
DIS	PROC    NEAR            ;显示子程序
	MOV	AL,[SI]
	MOV	CL,04H
	SHR	    AL,CL
	ADD	AL,30H
	MOV	DL,AL
	MOV	AH,02H
	INT	    21H
	MOV	AL,[SI]
	AND	AL,0FH
	ADD	AL,30H
	MOV	DL,AL
	MOV	AH,02H
	INT	    21H
	RET
	DIS	ENDP
CODE	ENDS
	END	START

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?