当前位置: 代码迷 >> 汇编语言 >> 汇编程序!
  详细解决方案

汇编程序!

热度:3336   发布时间:2013-02-26 00:00:00.0
汇编程序求助!!!
如题:编一个十进制乘法,被乘数和乘数以ASCⅡ码形式存在内存条中,将乘积在屏幕上显示出来。

纠结了很长时间了,希望大牛给予指正!

以下是我写的代码:
DAT SEGMENT 
  AA DB 12H,34H
  CC DB 1 DUP(?),'$'
DAT ENDS
PROG SEGMENT
  ASSUME CS:PROG,DS:DAT
START:MOV AX,DAT
  MOV DS,AX
  MOV DI,OFFSET CC
  MOV SI,OFFSET AA

  MOV BL,[SI]
  MOV AL,[SI+1]
  XOR AH,AH
  DIV 10
  MOV CL,AH
  MOV AX,0
LP: ADD AL,BL
  DAA
  ADC AH,0
  DAA
  DEC CL
  JNZ LP

  CALL LP1
  MOV AL,AH
  MOV DX,OFFSET CC
  MOV AH,9
  INT 21H
  MOV AH,4CH
  INT 21H


LP1 PROC
  MOV BH,AL
  MOV CL,4
  SHR AL,CL
  CMP AL,9
  JBE NEXT1
  ADD AL,7
NEXT1:ADD AL,30H
  MOV [DI],AL
  INC DI
  MOV AL,BH
  AND AL,0FH
  CMP AL,9
  JBE NEXT2
  ADD AL,7
NEXT2:ADD AL,30H
  MOV [DI],AL
  INC DI
  RET
LP1 ENDP

PROG ENDS
  END START
 

------解决方案--------------------------------------------------------
探讨
是乘法啦,呵呵 不好意思,可能弄错了。。

DAT SEGMENT
AA DB 12H,40H
CC DB 2 DUP(?),'$'
DAT ENDS