常见汇编小程序大全Word文档下载推荐.docx
《常见汇编小程序大全Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《常见汇编小程序大全Word文档下载推荐.docx(46页珍藏版)》请在冰豆网上搜索。
LOOPSSS
MOVCX,0
XXX:
MOVDX,0
MOVBX,10
DIVBX
INCCX
PUSHDX
CMPAX,0
JAXXX
MOVAH,02H
SSSS:
POPDX
ADDDL,30H
INT21H
LOOPSSSS
MOVAH,4CH
CODEENDS
ENDSTART
2p进制bx(入口)转换
MOVCX,0
POPAX
MOVBX,7;
进制的入口参数
ADDAL,37H
JMPXXXX
QQQ:
ADDAL,30H
XXXX:
MOVDL,AL
3x的n次方
DATASEGMENT
XDB80HDUP(0)
YDB80HDUP(0)
DATAENDS
STACKSEGMENT
DW20HDUP(0)
CODE,DS:
DATA,SS:
STACK
MOVAX,DATA;
该程序实现了首位是0则吧输出的功能
MOVDS,AX;
局限是两个数必须是个位数
MOVAH,01H;
并且输入时两个数之间没有空格检测
MOVX,AH
SUBAL,30H
MOVY,AL
MOVAH,01H
MOVBL,AL
MOVAL,Y
MOVCL,Y
MULCL
INCX
CMPBL,X
JNEXXX
PUSHAX
MOVDL,0DH
MOVDL,0AH
POPAX
XX:
JAXX
MOVAH,4CH
CODEENDS
ENDSTART
4y与x的选择输出
MOVAH,0
MOVBL,AL
CMPAL,3
JES1
CMPAL,4
JES2
CMPAL,5
JES3
CMPAL,6
JES4
JNAS5
CMPAL,7
JNBS5
S1:
MULBL
ADDAL,BL
JMPSSS
S2:
SUBAL,BL
S3:
S4:
MULBX
MOVCL,2
DIVCL
S5:
MOVDL,0DH
MOVDL,65H
MOVDL,72H
MOVDL,6FH
JMPXX
MOVCL,16
DIVCL
POPAX;
也可以movdl,ah效果一样
MOVCL,8
SHRAX,CL
CMPAL,9
JNAQQQ
MOVAH,4CH
ENDSTART
5跟踪数据段
MOVAX,DATA
MOVDS,AX
MOVSI,OFFSETX
WW:
CMPAL,3DH
JEZZ
CMPAL,3AH
JBYY
SUBAL,37H
MOV[SI],AL
INCSI
JMPWW
YY:
ZZ:
DECSI;
这是要注意的
MOVAH,[SI]
DECSI
6九九乘法表
DW30HDUP(0)
CODESEGMENT
ASSUMECS:
CODE
MOVCX,101H
QQ:
INCCL
MOVDL,20H;
输出空格
MOVAH,02H
INT21H
MOVDL,CH
MOVDL,2AH
MOVDL,CL
MOVDL,3DH
MOVAL,CH
MOVBL,CL
MOVAH,0
MULBL
MOVBL,0AH
DIVBL
ADDDL,30H
CMPDL,30H
JEKKK
JMPRR
KKK:
乘之后结果首位是0
RR:
POPAX
MOVDL,AH
CMPCH,CL
JAQQ
MOVAH,02H;
回车换行
CMPCH,9
JEEE
INCCH
MOVCL,1
JMPWW
EE:
7逆向输出
DW80HDUP(0)
MOVAX,DATA
MOVBX,OFFSETX
CMPAL,0DH
JEQQQ
MOV[BX],AL
JMPXXX
DECBX
MOVDL,[BX]
MOVCX,BX
INCCX
CMPCX,OFFSETX
JNEQQ
MOVAX,4C00H
8去掉空格并反向输出
DATA
CMP[BX],20H
JEQQ
9四位二进制数转换为压缩的bcd码
MOVCX,4
JBXXX
JMPQQ
SUBAL,30H
LOOPXX
MOVAL,[BX]
MOVDH,8
XORAH,AH
DIVDH
PUSHAX
MOVAL,AH
MOVDH,4
MOVDH,2
ADDAH,30H
MOVDL,AH
LOOPQQQ
10星星输出
STACK1
INCAL
MOVBL,AL
MOVBH,AL
MOVCX,AX
MOVDH,1
DECCL
MOVX,CL
定义两个段xx和qq是两种运算,不过在第一层循环里
MOVCL,X
JMPBB
AA:
BB:
INCCL
CMPBL,CL
JESSSS
MOVDL,20H
JMPAA
INCBL
INCDH
DECX
CMPBH,DH
JNEXX
11字符串的比较
XDB50HDUP(0)
YDB50HDUP(0)
ZDB'
CHAR1>
CHAR2'
ADB'
CHAR1<
BDB'
CHAR1=CHAR2'
INCCH
MOVSI,OFFSETY
JEWWW
WWW:
JAAA
JBBB
MOVDL,CH
CMPDL,0;
两个数的长度要是一样,则每一项进行比较,从高位首项开始
JECC
DECDL
MOVCH,[BX]
MOVCL,[SI]
JMPSSS
LEADI,Z
A1:
CMPDH,11
MOVDL,[DI]
MOVAH,2
INCDI
JMPA1
LEADI,A
B1:
JMPB1
CC:
LEADI,B
C1:
JMPC1
;
12两个循环实现向量相乘
VADB1,3,5,7,9
VBDB2,4,6,8,10
COUNTEQU$-VB
RESULTDBCOUNT*COUNTDUP(0)
DATAENDS
STACKSEGMENTPARASTACK
DW40HDUP(0)
STACKENDS
START:
LEASI,VA
LEADI,VB
LEABP,RESULT
PUSHBP
MOVCX,COUNT
LOP1:
PUSHCX
PUSHDI
MOVAL,[SI]
LOP2:
MULBYTEPTR[DI]
MOV[BP],AX
ADDBP,1
LOOPLOP2
POPDI
POPCX
LOOPLOP1
MOVCX,25
POPBP
LOP3:
MOVAX,[BP]
MOVBL,0AH
KKK:
RR:
LOOPLOP3
;
13求阶乘
DATASEGMENT
RESDW?
STACK1SEGMENTPARASTACK
DW20HDUP(0);
8的阶乘就不行了,寄存器的位数有限
STACK1ENDS
CODESEGMENT
CALLSTDIN
回车换行
MOVBX,1
CALLFACT
MOVRES,BX
MOVAX,BX;
想让它输出
MOVCX,0
XXX:
JAXXX
SSS:
LOOPSSS
STDINPROC
MOVAH,1
CMPAL,30H
JLSTDIN
CMPAL,37H
JGSTDIN
ANDAL,0FH
RET
STDINENDP
FACTPROC
JGNEXT1
NEXT1:
CMPAX,1
JGNEXT2
NEXT2:
MULBX
MOVBX,AX
DECAX
CMPAL,1
JANEXT2
FACTENDP
14十进制多字节加法器
XDB20HDUP(0)
YDB20HDUP(0)
ZDB20HDUP(0)
MOVBP,OFFSETX
MOVDI,OFFSETZ
CMPAL,2BH;
是加号就跳
JEWW
MOV[BP],AL
INCBP
CMPAL,3DH;
是等于号就跳
JEAA
SUBA