汇编实现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_
;

IOS高级开发~底层实现资源收集

注意:dlopen()一个路径时候要以你本机的路径为准 1、NSArray & NSAutoreleasePool 实现 #include #include #include  int ma...
  • zfpp25_
  • zfpp25_
  • 2013年07月31日 11:58
  • 2131

shell脚本实现图片文件的重命名之修订版本~

还是提一下我写这个脚本的背景。这段时间我在学习linux,发现真的还是很好用的系统。同时我在往我的QQ相册里面传图片的时候发现我的照片实在是乱的不能再乱了,而且上传的过程中每次最多只能上传300张,真...
  • Daxen
  • Daxen
  • 2011年05月15日 20:34
  • 393

[算法入门]快速排序非递归方法(Java实现),大家一起来找茬啊~

基础总结一下,快速排序的步骤: 1、找到一个key值(就是数组第一个值),先从右到左找,找到一个比它小的值,记录下标。 2、然后从左往右找,找到一个比它大的值,记录下标。 3、交换找到的两个数字...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:汇编实现16位有符号数的输入~~~~~~
举报原因:
原因补充:

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