assembly language programm--define your own function

start:
      mov ax,12345d    
; move data 12345 to ax
      call print_num      ;call print_num function that defined by yourself
      mov ah,4Ch          ;INT 21h / AH=4Ch - return control to the operating system (stop program)
      int 21h
     

print_num:            ;define   your own function
       pusha             ;push all registers's data into stack
       mov cx,0
       mov bx,10d
lp1:   
       mov dx,0
       inc cx           ;increase cx,cx will be used in  next loop name lp2
       div bx           ;ax divided by bx
       cmp dx,0      ;compare dx with 0
       push dx        ;push remainder into stack
jne lp1                 ;jne means jump if not equal
    
       mov ah,02h
       dec cx          ;decrease cx 
       pop dx          ;get rid of 0 on the top of stack


lp2:   
     
      pop dx        ;pop data from stack
      add dl,48    ;entry: DL = character to write, ASCII code 48-->0d

      int 21h        ;INT 21h / AH=2 - write character to standard output.

loop  lp2           ;this loop won't be end untill cx decrease to 0

      
      

      popa         ;pop out all datas in stack  which push in by 'pusha' command 



output:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值