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 + -
显示快捷键?