sum.asm

来自「windows汇编语言程序设计 吴中平著 一书所附所有源代码。 该书重点讲解」· 汇编 代码 · 共 78 行

ASM
78
字号
.386p
Seg_Data  SEGMENT  use16
     a      DW 1968
     b      DW 2113
     c      DW ?
     Plus   DB "a+b=$"
     Result DB 5 dup (?),'$'
Seg_Data ENDS

Seg_Stack  SEGMENT  use16
      DW  512  dup  (?)
      Top  label  WORD
Seg_Stack  ENDS

Seg_Code SEGMENT use16
main proc far
     Assume  cs:Seg_Code , ds:Seg_Data , ss:Seg_Stack
 Start:
    mov    ax ,  Seg_Stack
    mov    ss ,  ax
    mov    sp ,  offset Top
    mov    ax ,  Seg_Data
    mov    ds ,  ax
    mov    es ,  ax
;=========================================
    push   a
    push   b
    call     Sum
    mov c,ax
    lea bx,Result
    mov ax,c
    call BTOD
    mov dx,0
    mov ah,2
    int 10h
    mov ah,9
    lea dx, Plus
    int 21h
    cld
    mov al,'0'
    lea di,Result
    repz scasb
    dec di
    mov ah,9
    mov dx,di
    int 21h
;=========================================
   mov ax,4c00h
   int 21h
main Endp

Sum proc near
   push bp
   mov bp,sp
   sub sp,2
   mov ax,[bp+4]
   add ax,[bp+6]
   mov sp,bp
   pop bp
   ret 4
Sum endp

BTOD proc near
   mov si,5
   mov cx,10
store:
   xor dx,dx
   div cx
   add dl,30h
   dec si
   mov [bx][si],dl
   or si,si
   jnz store
   ret
BTOD endp
Seg_Code  ENDS
  End  Start

⌨️ 快捷键说明

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