# 16位有符号整型数据的输出～～～～

;-----------------------------------------------------------------------------
;            __write_int_
;        ==========================
;
;Proc For write a int decimal to screen, int data in BX
;-----------------------------------------------------------------------------
__write_int_   proc    near
push    cx
push    ax
;process if negtive
mov     ax, bx
not    ax
test    ah, 10000000B
jne     not_negative_w            ;not negative
mov     dl, '-'
mov     ah, 02h
int     21h
neg     bx
not_negative_w:
mov    cx, 10000d            ;divide by 10000
mov    ax, bx                ;data in bx, mov to ax
call    __dec_div_
mov    cx, 1000d
mov    ax, bx
call    __dec_div_
mov    cx, 100d
mov    ax, bx
call    __dec_div_
mov    cx, 10d
mov    ax, bx
call    __dec_div_
mov    cx, 1d
mov    ax, bx
call    __dec_div_
;linefeed and carriage after out put a data
mov    ah, 2h
mov    dl, 0ah                ;linefeed
int    21h
mov    dl, 0dh                ;carriage return after read
int    21h
;
pop    ax
pop    cx
ret                    ;return form _write_int_
;-----------------------------------------------------------------------------
;            __dec_div_
;        ==========================
;
;Subroutine to divide number in BX by number in CX
;print quotient on screen, (numberator in DX+AX, denom in CX)
;-----------------------------------------------------------------------------
__dec_div_     proc    near
;
mov    ax, bx                          ;number low half
mov    dx, 0                           ;zero out high half
div    cx                              ;divide by CX
mov    bx, dx                          ;remainder into BX
mov    dl, al                ;quotient into DL
;print the contents of DL on screen
add    dl, 30h                         ;convert to ASCII
mov    ah, 2h
int    21h
ret
__dec_div_     endp                            ;end of proc __dec_div_
;-----------------------------------------------------------------------------
__write_int_   endp                            ;end of proc __write_int_
;
;-----------------------------------------------------------------------------
;
codesg    ends                    ;end of code segment
;*****************************************************************************
end    begin                ;end assembly
;
• 本文已收录于以下专栏：

## 带符号8位整型向带符号16位整型的强制转换

• mu89qing
• 2015年04月27日 19:54
• 983

## 16位有符号

1. 16位有符号 补码最大的数为0111 1111 1111 1111,其原码跟他一样（正数原码补码相同）,最小的数为1000 0000 0000 0000; 其范围是-（2^15）~（2^1...
• wzw71734
• 2016年11月20日 19:31
• 784

## 32位，64位整数及其print输出

32位机，和64位机，情况是不同的。以下仅讨论32位机。 int ,unsigned int 是32位的，sizeof(int)返回4。说明是4字节（即32位）。 long int , long ...
• woxincd
• 2012年04月11日 15:36
• 5117

## printf输出格式总结

printf函数称为格式输出函数，其关键字最末一个字母f即为“格式”(format)之意。其功能是按用户指定的格式，把指定的数据显示到显示器屏幕上。 printf函数调用的一般形式 pri...
• sinat_34009734
• 2016年06月12日 15:13
• 27850

## printf输出格式总结

• Andrewseu
• 2015年03月17日 16:32
• 1285

## C语言中16位整型数据的取值范围

• liitdar
• 2018年01月21日 16:12
• 89

## c# byte数组转换 8位有符号整数 16位有符号整数 32位有符号整数

byte数组   byte[] aa = new byte[] { 0xF8, 0x66, 0x55, 0x44 }; 1.转换成8位有符号整数   sbyte sb = (sbyte)aa[0...
• wangxingxing321
• 2017年10月17日 16:18
• 1090

## printf 格式化输出符号详细说明

• bujuan827
• 2016年09月02日 08:46
• 301

## printf()输出

printf()函数是式样化输出函数, 一般用于向准则输出设备按规定式样输出消息。正在编写步骤时经常会用到此函数。printf()函数的挪用式样为: printf(""，)； 其中式样化字符串包括两部...
• xiaoyiaoyou
• 2015年04月11日 20:13
• 710

## 汇编实现16位有符号二进制数排序并输出

data segment BUF DW 2560,-3,4387,12,6250,-79,54,88 COUNT EQU $-BUF OUTBUF DB 7 DUP(0),$data ends cod...
• xiaoxin0424
• 2009年05月17日 17:04
• 826

举报原因： 您举报文章：16位有符号整型数据的输出～～～～ 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)