📄 bcd.asm
字号:
; program find the maximum number(2 bits) in packed BCD digits
; code by brvman 2008/06/05
DATA SEGMENT PARA ;DATA segment
BLOCK DB "52", "14", "56", "85", "34"
DB "63", "38", "70", "18", "69"
COUNT EQU $-OFFSET BLOCK
MAX DB 2 dup(?)
DATA ENDS
CSEG SEGMENT PARA 'CODE' ;code segment
START PROC FAR ;procedure start
ASSUME CS:CSEG, DS:DATA
MOV AX, DATA
MOV DS, AX
MOV SI, OFFSET BLOCK
MOV BX, OFFSET MAX
MOV CX, COUNT - 1
MOV DL, [SI]
INC SI
COMP:
LODSB
CMP AL, DL
JL NEXT
MOV DL, AL
NEXT:
LOOP COMP
MOV AL, DL
MOV CL, 4
SHR DL, CL ; 如果使用30386指令集,此处CL可改为立即数,但是因为程序前面的原因,只能使用CL
ADD DL, 30H
MOV [BX], DL
AND AL, 0FH
ADD AL, 30H
MOV [BX+1], AL
PRINT:
MOV BX, OFFSET MAX
MOV DL, [BX]
MOV AH, 2
INT 21H
MOV DL, [BX+1]
INT 21H
MOV AH, 4CH
INT 21H
START ENDP
CSEG ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -