用汇编语言乘法指令实现两个字节相乘的程序并转换成十六进制数显示出

2025-04-06 18:30:04
推荐回答(1个)
回答1:

code  segment
      assume cs:code
      org 100h
start:
      jmp bbb
x     db 15
y     db 15
z     dw ?
msg1  db 13,10,'     ','$'

bbb:
      push cs
      pop ds
      push cs
      pop es
      mov al,x
      mov bl,y
      mul bl
      mov z,ax

      lea di,msg1
      inc di
      inc di
      mov cx,4
again1:
      mov ax,word ptr[z]
      rol ax,1
      rol ax,1
      rol ax,1
      rol ax,1
      mov word ptr[z],ax
      and ax,000Fh
      cmp al,9
      jg line1
      add al,30h
      mov byte ptr[di],al
      jmp line2
line1:
      add al,37h
      mov byte ptr[di],al
line2:
      inc di
      loop again1

      lea dx,msg1
      mov ah,9
      int 21h
      mov ah,8
      int 21h

      mov ah,4ch
      int 21h
code  ends
      end start