汇编实现16位有符号数的输入~~~~~~

原创 2006年05月21日 12:05:00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;NOTE: This ASM file is generated by:
;                  Simple C minus Compiler     v1.0
;      CopyRight (C) 2002-2008 Lonelyforest. All rights reseved.
;
; Because its not perfect, so this file maybe have bug! use it carefully!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;
;-----------------------------------------------------------------------------
;            __read_int_
;        ==========================
;
;Proc For Read a int decimal, result in BX
;-----------------------------------------------------------------------------
__read_int_    proc    near
       local   minus:byte, count:byte
;minus is falg to input number
;initial
       push    ax
       push    cx
       push    dx
       mov    minus, '+'            ;flag, +
       mov     bx, 0
       mov    count, 5d            ;number of digits
;
_new_char_:
       mov    ah, 1                ;input from keyboard
       int    21h                  ;call DOS
;
       cmp    al, '+'
       je    _new_char_            ;maybe have bug!
       cmp    al, '-'
       jne    _continue_read_
       mov    minus, '-'
       jmp    _new_char_
;
_continue_read_:
       sub    al, 30h                ;ASCII to Binary
       jl    _exit_read_            ;jump exit if < 0
       cmp    al, 9d                ;is it > 9d ?
       jg    _exit_read_            ;yes
       cbw                          ;byte in al to word in ax
;digit now in (ax)
       xchg    ax,bx                ;trade digit & number
       mov    cx, 10d
       mul    cx
       xchg    ax,bx                ;trade number & digit
;Add digit in AX to number in BX
       add    bx, ax                ;add digit to number
       dec    count
       jnz    _new_char_            ;get next digit if < 5
_exit_read_:                        ;should process minus!!!
       cmp     minus, '-'
       jne     not_negative_r
       neg     bx                              ;negetive
not_negative_r:
       mov    ah, 2h
       mov    dl, 0ah                ;linefeed
       int    21h
       mov    dl, 0dh                ;carriage return after read
       int    21h
;
       pop    dx                     ;recover registers
       pop    cx
       pop    ax
;result number in bx
       ret
__read_int_    endp                ;end of proc __read_int_
;

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

书评:《算法:C语言实现(第1~4部份) 基础知识、数据结构、排序及搜索(原书第3版))

本书细腻讲解计算机算法的c语言实现。全书分为四部分,共16章。包括基本算法分析原理,基本数据结构、抽象数据结构、递归和树等数据结构知识,选择排序、插入排序、冒泡排序、希尔排序、快速排序方法、归并和归并...

JQuery+JQuery ui实现的弹出窗口+遮罩层+拖动+更改大小~!

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> http://www.w3.org/1999/xhtml">     无标题...

JQuery+JQuery ui实现的弹出窗口+遮罩层+拖动+更改大小~!

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/1999/xhtml">    无标题页     ...
  • zhxzhs
  • zhxzhs
  • 2011-06-09 19:40
  • 7568
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)