汇编/C/C++/MFC/JAVA/C# 进阶群103197177

欢迎广大喜欢编程朋友加入进来。如果是大神请分享你的经验,带领广大小伙伴一起打怪升级得经验;如果是编程新人,那么这里是你不二的选择,分享,奉献是我们追求的目标;我们之中大部分是有一年多工作经验的热血编程爱好者!希望有朝一日小伙伴们都能写出自己的软件,为中国的软件事业做点贡献(有点说大了 囧)..当然有兴趣那么我们行动吧,群103197177需要爱好编程的有为青年!!

 

16位补码:

_DATA SEGMENT 'DATA'
X1   DW 3

_DATA ENDS

_TEXT SEGMENT 'CODE'
ASSUME CS:_TEXT, DS:_DATA
START:MOV AX, _DATA
MOV DS, AX
MOV CX, 1; 设初值
MOV AX, X1; 用X1给AX赋值
REP1:MOV BX, 8000H; 既二进制的 1000 0000 0000 0000
AND BX, AX; BX和AX
CMP BX, 0
JA LOC1; 大于跳转
MOV DL, 48            ; 即设置字符0
JMP LOC2
LOC1:MOV DL, 49; 即设置字符1

LOC2:PUSH AX; AX入栈 保护AX中的内容
MOV AH, 02H; DOS 2号功能调用
INT 21H
POP AX; 还原AX中的内容
SHL AX, 1         ; 逻辑左移一位
INC CX                     ; 自加1
CMP CX, 16
JLE REP1        ; 小于等于16 跳转

MOV AX, 4C00H
INT 21H
_TEXT ENDS
END START

 

posted @ 2013-11-23 23:16  放逐²º¹²  阅读(781)  评论(2编辑  收藏  举报