⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p26.asm

📁 assembly code for MASM 6.0
💻 ASM
字号:

.model small
.stack 100
.data
     	CR	EQU 0AH
	LF	EQU 0DH
        MES_1   DB              CR,LF,'ENTER 4-DIGIT FIRST HEX NO $'
        MES_2   DB              CR,LF,'ENTER 4-DIGIT SECOND HEX NO $'
        MES_3   DB              CR,LF,'The LCM Is :  $'
	MULTI	DW		 1,10,100,1000
        RESULT  DW (00)
        RESULT1 DW (00)
        HCF     DW (00)
        DIVISOR  DW (00)
        DIVIDEND DW (00)


        INP1    DB 05
		DB 00
                DB 05 DUP(0)

        INP2    DB 05
		DB 00
                DB 05 DUP(0)
.code     
MAIN :  MOV     AX,@data         ; Initialise data segment
	MOV	DS,AX
	MOV	AH,09H
	MOV	DX,OFFSET MES_1	; Display
	INT	21H
        LEA     DX,INP1
        MOV     AH,0AH
        INT     21H

	MOV	AH,09H
        MOV     DX,OFFSET MES_2 ; Display
	INT	21H
        LEA     DX,INP2
        MOV     AH,0AH
        INT     21H
        MOV     CH,02H
        LEA     BX,INP1
  AGAIN:INC     BX
        INC     BX
        XOR     DI,DI
        MOV     CL,04
  BACK: MOV     AL,[BX+DI]
        CMP     AL,39H
        JG      NEXT
        SUB     AL,30H
        JMP     SKIP
 NEXT:  SUB     AL,37H
 SKIP:  MOV     [BX+DI],AL

        INC     DI
        DEC     CL
        JNZ     BACK
        LEA     BX,INP2
        DEC     CH
        JNZ     AGAIN

        MOV     CL,4
        LEA     BX,INP1
        INC     BX
        INC     BX
        MOV     AH,[BX+0]
        SAL     AH,CL
        AND     AH,0F0H
        MOV     AL,[BX+1]
        OR      AH,AL
        MOV     AL,[BX+2]
        SAL     AL,CL
        AND     AL,0F0H
        MOV     DH,[BX+3]
        OR      AL,DH
        MOV     RESULT,AX

        MOV     CL,4
        LEA     BX,INP2
        INC     BX
        INC     BX
        MOV     AH,[BX+0]
        SAL     AH,CL
        AND     AH,0F0H
        MOV     AL,[BX+1]
        OR      AH,AL
        MOV     AL,[BX+2]
        SAL     AL,CL
        AND     AL,0F0H
        MOV     DH,[BX+3]
        OR      AL,DH
        MOV     RESULT1,AX
        CMP     AX,RESULT
        JNC     NEXT1
        MOV     DIVISOR,AX
        MOV     CX,RESULT
        MOV     DIVIDEND,CX
        JMP     SKIP1
NEXT1:
        MOV     DIVIDEND,AX
        MOV     CX,RESULT
        MOV     DIVISOR,CX
SKIP1:  MOV     DX,0
        MOV     AX,DIVIDEND
        DIV     DIVISOR
        CMP     DX,0
        MOV     CX,DIVISOR
        MOV     DIVISOR,DX
        MOV     DIVIDEND,CX
        JNZ     SKIP1

        MOV	AH,09H
        MOV     DX,OFFSET MES_3 ; Display
	INT	21H


        MOV     HCF,CX
        MOV     DX,0
        MOV     AX,RESULT
        MUL     RESULT1
        DIV     HCF

       MOV      CL,4
       MOV      BX,AX
       AND      AH,0F0H
       SAR      AH,CL

       CMP      AH,09H
       JNC      SKIP2
       ADD      AH,30H
       JMP      NEXT2
SKIP2: ADD      AH,37H 
NEXT2:
       MOV     DL,AH
       MOV     AH,02H
       INT     21H

       MOV      AX,BX
       AND      AH,0FH

       CMP      AH,09H
       JNC       SKIP3
       ADD      AH,30H
       JMP      NEXT3
SKIP3: ADD      AH,37H 
NEXT3:
       MOV      DL,AH
       MOV      AH,02H
       INT     21H

       MOV      AX,BX
       AND      AL,0F0H
       SAR      AL,CL
       CMP      AL,09H
       JNC      SKIP4
       ADD      AL,30H
       JMP      NEXT4
SKIP4: ADD      AL,37H 
NEXT4:
       MOV     DL,AL
       MOV     AH,02H
       INT     21H
       MOV      AX,BX
       AND      AL,0FH

       CMP      AL,09H
       JNC      SKIP5
       ADD      AL,30H
       JMP      NEXT5
SKIP5: ADD      AL,37H 
NEXT5:
       MOV      DL,AL
       MOV      AH,02H
       INT     21H


	MOV	AH,4CH		; Terminate
	INT	21H
        END     MAIN
        END

⌨️ 快捷键说明

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