第一次用汇编写乘法...5x5十进制乘法

 

 

 

CRLF MACRO

MOV DL,0AH

MOV AH,02H

INT 21H

MOV DL,0DH

MOV AH,02H

INT 21H

ENDM

DATA SEGMENT

;DATA

DATA1 DB 5 DUP(?)

DATA2 DB 5 DUP(?)

;DATA1 DB '12345'

;DATA2 DB '12345'

RESULT DB 11 DUP(?)

;TIPS MESSAGE

MINPUT DB 'Please input a number (5bitDEC):',0AH,0DH,'$'

MRESULT DB 'The Result is :',0AH,0DH,'$' 

DATA ENDS

STACK SEGMENT 

STA DB 50 DUP(?)

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 SP,0032H

;INPUT

MOV DX,OFFSET MINPUT

MOV AH,09H

INT 21H

MOV SI,OFFSET DATA1

;ADD SI,0004H

MOV CX,5

IN1:

MOV AH,01H

INT 21H

MOV [SI],AL

INC SI

LOOP IN1

CRLF

;INPUT

MOV DX,OFFSET MINPUT

MOV AH,09H

INT 21H

CRLF

MOV SI,OFFSET DATA2

;ADD SI,0004H

MOV CX,5

IN2:

MOV AH,01H

INT 21H

MOV [SI],AL

INC SI

LOOP IN2

;Mul

MOV DX,00H;记录相乘了N

MOV SI,OFFSET DATA2

ADD SI,0004H

MUL2:

MOV BL,[SI]

AND BL,0FH

MOV DI,OFFSET DATA1

ADD DI,0004H

MOV CX,5

PUSH SI

MOV SI,OFFSET RESULT

ADD SI,DX

MUL1:

MOV AL,[DI]

AND AL,0FH

DEC DI

MUL BL

AAM

MOV BH,AH;保存乘法进位

XOR AH,AH

;------------------加法调整--------------------;

;积的低位处理

ADD AL,[SI]

AAA

MOV [SI],AL

;积的进位处理

MOV AL,AH

XOR AH,AH

ADD AL,BH

AAA

PUSH BX

MOV BX,00H

MADD:

INC BX

ADD AL,[SI+BX]

AAA

MOV [SI+BX],AL

MOV AL,AH

XOR AH,AH

CMP BX,5

JNE MADD

POP BX

;------------------加法调整--------------------;

INC SI

LOOP MUL1

POP SI

DEC SI

INC DX

CMP DX,5

JNE MUL2

;show

CRLF

;INPUT

MOV DX,OFFSET MRESULT

MOV AH,09H

INT 21H

CRLF

MOV SI,OFFSET RESULT

MOV CX,11

ADD SI,10

CHECK:

MOV DL,[SI]

CMP DL,0

DEC SI

DEC CX

JE CHECK

SHOW:

MOV DL,[SI]

DEC SI

ADD DL,30H

MOV AH,02H

INT 21H

LOOP SHOW

EXIT:

MOV AH,4CH

INT 21H

CODE ENDS

END START

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值