bcd.asm
来自「计算二位无符号数平方的程序,将用户从键盘输入的十进制数转换成为十六进制数并显示。」· 汇编 代码 · 共 49 行
ASM
49 行
; 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 + =
减小字号Ctrl + -
显示快捷键?