




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
;1加到任意的数STACK SEGMENT STACKDB 100H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART:MOV CL,10MOV AH,01HMOV AL,0PUSH AXPRINT:MOV AH,01HINT 21HCMP AL,0DHJE SSUB AL,30HMOV DL,ALPOP AXMUL CLADD AL,DLPUSH AXJMP PRINTS:MOV DL,0AHMOV AH,02HINT 21H POP AX ;输出回车换行MOV CL,AL ;加法器,并输出结果AND CX,00FFHMOV AX,0MOV BX,1SSS: ADD AX,BX INC BX LOOP SSS MOV CX,0XXX: MOV DX,0 MOV BX,10 DIV BX INC CX PUSH DX CMP AX,0 JA XXX MOV AH,02HSSSS: POP DX ADD DL,30H INT 21H LOOP SSSSMOV AH,4CHINT 21HCODE ENDSEND START;2 p进制bx(入口)转换STACK SEGMENT STACKDB 100H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART:MOV CL,10MOV AH,01HMOV AL,0PUSH AXPRINT:MOV AH,01HINT 21HCMP AL,0DHJE SSUB AL,30HMOV DL,ALPOP AXMUL CLADD AL,DLPUSH AXJMP PRINTS:MOV DL,0AHMOV AH,02HINT 21HMOV CX,0POP AX XXX: MOV DX,0 MOV BX,7 ;进制的入口参数 DIV BX INC CX PUSH DX CMP AX,0 JA XXX MOV AH,02HSSSS: POP DX ADD DL,30H INT 21H LOOP SSSSMOV AH,4CHINT 21HCODE ENDSEND STARTXXX: ADD AL,37H JMP XXXX QQQ: ADD AL,30HXXXX: MOV DL,AL MOV AH,02H INT 21H;3 x的n次方DATA SEGMENTX DB 80H DUP(0)Y DB 80H DUP(0)DATA ENDSSTACK SEGMENTDW 20H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA ;该程序实现了首位是0则吧输出的功能 MOV DS,AX ;局限是两个数必须是个位数 MOV AH,01H ;并且输入时两个数之间没有空格检测 INT 21H MOV X,AH SUB AL,30H MOV Y,AL MOV AH,01H INT 21H SUB AL,30H MOV BL,AL MOV AL,Y MOV CL,YXXX: MUL CL INC X CMP BL,X JNE XXX PUSH AX MOV AH,02H MOV DL,0DH INT 21H MOV DL,0AH INT 21H POP AX MOV CX,0XX: MOV DX,0 MOV BX,10 DIV BX INC CX PUSH DX CMP AX,0 JA XX MOV AH,02HSSSS: POP DX ADD DL,30H INT 21H LOOP SSSS MOV AH,4CH INT 21H CODE ENDS END START;4 y与x的选择输出STACK SEGMENT STACKDW 20H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART:MOV AH,01HINT 21HSUB AL,30HMOV AH,0MOV BL,ALCMP AL,3JE S1CMP AL,4JE S2CMP AL,5JE S3CMP AL,6JE S4CMP AL,3JNA S5CMP AL,7JNB S5S1:MUL BLADD AL,BLJMP SSSS2:MUL BLSUB AL,BLSUB AL,BLJMP SSSS3:MUL BLJMP SSSS4:MUL BXMOV CL,2DIV CLJMP SSSS5:MOV DL,0DH MOV AH,02H INT 21H MOV DL,0AH INT 21H MOV DL,65H INT 21H MOV DL,72H INT 21H MOV DL,72H INT 21H MOV DL,6FH INT 21H MOV DL,72H INT 21H JMP XXSSS: MOV CL,16 DIV CL PUSH AX PUSH AX MOV DL,0DH MOV AH,02H INT 21H MOV DL,0AH MOV AH,02H INT 21H POP AX MOV DL,AL ADD DL,30H MOV AH,02H INT 21H POP AX ;也可以mov dl,ah 效果一样 MOV CL,8 SHR AX,CL CMP AL,9 JA XXX CMP AL,9 JNA QQQXXX: ADD AL,37H JMP XXXX QQQ: ADD AL,30HXXXX: MOV DL,AL MOV AH,02H INT 21HXX: MOV AH,4CH INT 21H CODE ENDS END START ;5 跟踪数据段DATA SEGMENTX DB 80H DUP(0)DATA ENDSSTACK SEGMENTDW 20H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX MOV SI,OFFSET XWW: MOV AH,01H INT 21H CMP AL,3DH JE ZZ CMP AL,3AH JB YY SUB AL,37H MOV SI,AL INC SI JMP WWYY: SUB AL,30H MOV SI,AL INC SI JMP WWZZ: DEC SI ;这是要注意的 MOV AH,SI DEC SI MOV AH,SI MOV AH,4CH INT 21H CODE ENDS END START;6九九乘法表STACK SEGMENTDW 30H DUP(0)STACK ENDSCODE SEGMENT ASSUME CS:CODE START: MOV CX,101H JMP WWQQ: INC CL MOV DL,20H ;输出空格 MOV AH,02H INT 21H WW: MOV DL,CH ADD DL,30H MOV AH,02H INT 21H MOV DL,2AH INT 21H MOV DL,CL ADD DL,30H INT 21H MOV DL,3DH INT 21H MOV AL,CH MOV BL,CL MOV AH,0 MUL BL MOV BL,0AH DIV BL PUSH AX MOV DL,AL ADD DL,30H CMP DL,30H JE KKK MOV AH,02H INT 21H JMP RR KKK: MOV DL,20H ;乘之后结果首位是0 MOV AH,02H INT 21HRR: POP AX MOV DL,AH ADD DL,30H MOV AH,02H INT 21H CMP CH,CL JA QQ MOV AH,02H ;回车换行 MOV DL,0DH INT 21H MOV DL,0AH INT 21H CMP CH,9 JE EE INC CH MOV CL,1 JMP WW EE: CODE ENDS END START ;7 逆向输出DATA SEGMENTX DB 80H DUP(0)DATA ENDSSTACK SEGMENTDW 80H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV BX,OFFSET XXXX: MOV AH,01H INT 21H CMP AL,0DH JE QQQ MOV BX,AL INC BX JMP XXXQQQ: MOV AH,02H MOV DL,0AH INT 21HQQ: DEC BX MOV DL,BX MOV AH,02H INT 21H MOV CX,BX INC CX CMP CX,OFFSET X JNE QQ MOV AX,4C00H INT 21H CODE ENDS END START ;8 去掉空格并反向输出DATA SEGMENTX DB 80H DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV BX,OFFSET XXXX: MOV AH,01H INT 21H CMP AL,0DH JE QQQ MOV BX,AL INC BX JMP XXXQQQ: MOV AH,02H MOV DL,0AH INT 21HQQ: DEC BX CMP BX,20H JE QQ MOV DL,BX MOV AH,02H INT 21H MOV CX,BX CMP CX,OFFSET X JNE QQ MOV AX,4C00H INT 21H CODE ENDS END START ;9四位二进制数转换为压缩的bcd码DATA SEGMENTX DB 80H DUP(0)DATA ENDSSTACK SEGMENTDW 20H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX MOV CX,4 MOV BX,OFFSET XXX: MOV AH,01H INT 21H CMP AL,3AH JB XXX SUB AL,37H JMP QQXXX: SUB AL,30H QQ: MOV BX,AL INC BX LOOP XX MOV AH,02H MOV DL,0DH INT 21H MOV DL,0AH INT 21H MOV CX,4 MOV BX,OFFSET XQQQ: MOV AL,BX MOV DH,8 XOR AH,AH DIV DH PUSH AX ADD AL,30H MOV DL,AL MOV AH,02H INT 21H POP AX MOV AL,AH MOV DH,4 XOR AH,AH DIV DH PUSH AX ADD AL,30H MOV DL,AL MOV AH,02H INT 21H POP AX MOV AL,AH MOV DH,2 XOR AH,AH DIV DH PUSH AX ADD AL,30H MOV DL,AL MOV AH,02H INT 21H POP AX ADD AH,30H MOV DL,AH MOV AH,02H INT 21H INC BX LOOP QQQ MOV AH,4CH INT 21H CODE ENDS END START;10 星星输出DATA SEGMENTX DB 80H DUP(0)DATA ENDSSTACK SEGMENTDW 20H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX,DATA MOV DS,AX MOV AH,01H INT 21H INC AL SUB AL,30H MOV BL,AL MOV BH,AL MOV AH,0 MOV CX,AX MOV DH,1 PUSH AX MOV DL,0DH MOV AH,02H INT 21H MOV DL,0AH INT 21H DEC CL MOV X,CL XX: MOV DL,20H ;定义两个段xx和qq是两种运算,不过在第一层循环里 MOV AH,02H INT 21H LOOP XXQQ: MOV DL,2AH INT 21H MOV CL,X JMP BBAA: MOV DL,2AH INT 21H BB: INC CL CMP BL,CL JE SSSS INC CL MOV DL,20H MOV AH,02H INT 21H JMP AASSSS: INC BL MOV AH,02H MOV DL,0DH INT 21H MOV DL,0AH INT 21H INC DH DEC X MOV CL,X CMP BH,DH JE QQQ CMP BH,DH JNE XX QQQ: MOV AX,4C00H INT 21H CODE ENDS END START;11 字符串的比较DATA SEGMENTX DB 50H DUP(0)Y DB 50H DUP(0)Z DB CHAR1CHAR2A DB CHAR1CHAR2B DB CHAR1=CHAR2DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV CX,0 MOV BX,OFFSET XXXX: MOV AH,01H INT 21H CMP AL,0DH JE QQQ MOV BX,AL INC BX INC CH JMP XXXQQQ: MOV AH,02H MOV DL,0AH INT 21H MOV SI,OFFSET YQQ: MOV AH,01H INT 21H CMP AL,0DH JE WWW MOV SI,AL INC SI INC CL JMP QQWWW: MOV AH,02H MOV DL,0AH INT 21H CMP CH,CL JA AA CMP CH,CL JB BB MOV BX,OFFSET X MOV SI,OFFSET Y MOV DL,CHSSS: CMP DL,0 ;两个数的长度要是一样,则每一项进行比较,从高位首项开始 JE CC DEC DL MOV CH,BX MOV CL,SI CMP CH,CL JA AA CMP CH,CL JB BB INC BX INC SI JMP SSSAA: LEA DI,ZA1: CMP DH,11 JE ZZ MOV DL,DI MOV AH,2 INT 21H INC DH INC DI JMP A1BB: LEA DI,AB1: CMP DH,11 JE ZZ MOV DL,DI MOV AH,2 INT 21H INC DH INC DI JMP B1CC: LEA DI,B C1: CMP DH,11 JE ZZ MOV DL,DI MOV AH,2 INT 21H INC DH INC DI JMP C1ZZ: MOV AH,4CH INT 21H CODE ENDS END START ;12两个循环实现向量相乘DATA SEGMENT VA DB 1,3,5,7,9 VB DB 2,4,6,8,10 COUNT EQU $-VB RESULT DB COUNT*COUNT DUP(0) DATA ENDSSTACK SEGMENT PARA STACK DW 40H DUP(0) STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX LEA SI,VA LEA DI,VB LEA BP,RESULT PUSH BP MOV CX,COUNT LOP1: PUSH CX PUSH DI MOV CX,COUNT MOV AL,SI MOV AH,0 LOP2: PUSH AX MUL BYTE PTR DI MOV BP,AX POP AX ADD BP,1 INC DI LOOP LOP2 POP DI POP CX INC SI LOOP LOP1 MOV CX,25 POP BP LOP3: MOV AX,BP MOV BL,0AH MOV AH,0 DIV BL PUSH AX MOV DL,AL ADD DL,30H CMP DL,30H JE KKK MOV AH,02H INT 21H JMP RR KKK: MOV DL,20H ;乘之后结果首位是0 MOV AH,02H INT 21H RR: POP AX MOV DL,AH ADD DL,30H MOV AH,02H INT 21H MOV DL,20H INT 21H ADD BP,1 LOOP LOP3 MOV AH,4CH INT 21H CODE ENDS END START ;13求阶乘 DATA SEGMENT RES DW ? DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(0) ;8的阶乘就不行了,寄存器的位数有限 STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 START:MOV AX,DATA MOV DS,AX CALL STDIN MOV AH,0 PUSH AX MOV AH,02H ; 回车换行 MOV DL,0DH INT 21H MOV DL,0AH INT 21H POP AX MOV BX,1 CALL FACT MOV RES,BX MOV AX,BX ;想让它输出 MOV CX,0 XXX: MOV DX,0 MOV BX,10 DIV BX INC CX PUSH DX CMP AX,0 JA XXX MOV AH,02H SSS: POP DX ADD DL,30H INT 21H LOOP SSS MOV AH,4CH INT 21H STDIN PROC MOV AH,1 INT 21H CMP AL,30H JL STDIN CMP AL,37H JG STDIN AND AL,0FH RET STDIN ENDP FACT PROC CMP AX,0 JG NEXT1 MOV BX,1 RET NEXT1:CMP AX,1 JG NEXT2 MOV BX,1 RET NEXT2:PUSH AX MUL BX MOV BX,AX POP AX DEC AX CMP AL,1 JA NEXT2 RET FACT ENDP CODE ENDS END START;14 十进制多字节加法器DATA SEGMENTX DB 20H DUP(0)Y DB 20H DUP(0)Z DB 20H DUP(0)DATA ENDSSTACK SEGMENTDW 20H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX MOV CX,0 MOV BP,OFFSET X MOV SI,OFFSET Y MOV DI,OFFSET ZXX: MOV AH,01H INT 21H CMP AL,2BH ;是加号就跳 JE WW SUB AL,30H MOV BP,AL INC BP INC CH JMP XXWW: MOV AH,01H INT 21H CMP AL,3DH ;是等于号就跳 JE AA SUB AL,30H MOV SI,AL INC SI INC CL JMP WW AA: CMP CL,CH JB DD MOV DL,CL MOV DH,CL JMP MM ;取较长的数的长度用来比较DD: MOV DL,CH MOV DH,CH MM: CMP DL,0 JE KK DEC SI DEC BP MOV AL,BP MOV AH,SI ADD AL,AH MOV DI,AL DEC DL INC DI JMP MMKK: PUSH DX MOV DI,OFFSET Z ;DI重新指向最低位,既段首RR: CMP DH,0 ;核心,与16的比较,小于16的不管,全部比较一遍。 JE GG MOV AL,DI CMP AL,10 JA LL DEC DH INC DI JMP RRLL: SUB AL,10 ;大于10的处理 MOV DI,AL INC DI MOV AH,DI INC AH MOV DI,AH DEC DH JMP RR GG: MOV AL,DI CMP AL,0 JE TT ;如果首位是0,则不输出 POP DX INC DH JMP ZZII: POP DXZZ: CMP DH,0 ;开始输出了 JE VV MOV AL,DI ADD AL,30H MOV DL,AL MOV AH,02H INT 21H DEC DI DEC DH JMP ZZTT: DEC DI JMP IIVV: MOV AH,4CH INT 21H CODE ENDS END START;15 十进制多字节算法器DATA SEGMENTX DB 20H DUP(0)Y DB 20H DUP(0)Z DB 20H DUP(0)DATA ENDSSTACK SEGMENTDW 20H DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA ;其实还有一种减法器的设计,两个数直接减,大减小则不管,小减打大则用0FFH全部打该数每一位减一遍, MOV DS,AX ;最后再加一并,且首位输出负号。 MOV CX,0 MOV BP,OFFSET X MOV SI,OFFSET Y MOV DI,OFFSET ZXX: MOV AH,01H ;X也装完了 INT 21H CMP AL,2BH ;是加号就跳 JE WWW CMP AL,2DH ;是减号就跳 JE WWW SUB AL,30H MOV BP,AL INC BP INC CH JMP XXWWW: PUSH AX ;把al压栈,判断是加好还是减号WW: MOV AH,01H ;y也装完了 INT 21H CMP AL,3DH ;是等于号就跳 JE AA SUB AL,30H MOV SI,AL INC SI INC CL JMP WW AA: CMP CL,CH ;判断该减几次,装入cl,ch中较大的数,在dl中。也在dh中,用于后面的比较,还压栈了两次 JB CCC MOV DL,CL MOV DH,CL JMP MMCCC: MOV DL,CH MOV DH,CHMM: POP AX PUSH DX ;后面有一个加完之后的全部转换及结果的全部输出,所以压栈了两次 PUSH DX CMP AL,2DH JE JJJEE: CMP DL,0 ;用dl判断加减的次数 JE KK3 DEC SI DEC BP MOV AL,BP MOV AH,SI ADD AL,AH MOV DI,AL ;加法 DEC DL INC DI JMP EE JJJ: CMP CL,CH JB JJ CMP CL,CH ;还要重新比较cl与ch,判断是前减后,还是后减前 JE BBB KKK: CMP DL,0 JE QQQ DEC SI DEC BP MOV AL,BP MOV AH,SI SUB AH,AL MOV DI,AH ;后减前一个数 DEC DL INC DI JMP KKKJJ: CMP DL,0 JE QQ DEC SI DEC BP MOV AL,BP MOV AH,SI SUB AL,AH MOV DI,AL ;前减后一个数 DEC DL INC DI JMP JJ BBB: MOV BP,OFFSET X MOV SI,OFFSET YSSS: CMP DH,0 ;若两个数一样长,则用dh跟踪全部比较 JE KK1 ;两个数比较晚了,没有一个较大,则相等,直接结束 DEC DH MOV BH,BP MOV BL,SI CMP BH,BL JA PPP CMP BH,BL JB PP INC BP INC SI JMP SSSKK3: JMP KK ;因为超出跳转范围,用了一个中转JMP KK3 PP: MOV BP,OFFSET X ;因为bp与si在比较之后位移已经发生变化,需重新回到高字节,数的高位,用cl跟踪 MOV SI,OFFSET YOOO: CMP CL,0 JE KKK INC BP INC SI DEC CL JMP OOOPPP: MOV BP,OFFSET X ;因为BP与SI在比较之后位移已经发生变化,需重新回到高字节,数的高位 ,用cl跟踪 MOV SI,OFFSET YXXX: CMP CL,0 JE JJ INC BP INC SI DEC CL JMP XXX QQQ: MOV DL,2DH ;后面减去前面的结果 ,就先输出一个负号 MOV AH,02H INT 21HQQ: POP DX ;前面减去后面的结果 MOV DI,OFFSET Z ; DI重新指向最低位,既段首 FF: CMP DL,0 ;核心,与16的比较,小于16的不管,全部比较一遍。 JE HH MOV AL,DI CMP AL,20 JA LLL DEC DL INC DI JMP FFLLL: ADD AL,10 ;减完之后的处理,小于10的处理 MOV DI,AL INC DI MOV AL,DI DEC AL MOV DI,AL DEC DL JMP FF KK1: JMP KK2 ;因为超出跳转范围,用了一个中转JMP KK1KK: POP DX ;dh还用于后面的输出,此时dh还是ch,cl中较大的数 MOV DI,OFFSET Z ; DI重新指向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版外汇市场交易手续费支付合同
- 2025年度航空航天材料采购合同规范范本
- 2025年度企业环保审批代办服务合同
- 2025版配餐服务食品安全责任协议书版范本
- 2025版历史文化遗址保护与修复居间服务协议
- 2025版挖掘机租赁项目安全生产责任书
- 2025版新能源充电桩售后服务及保障合同
- 2025版水利工程土方施工合同
- 2025年公积金贷款二手房买卖合同及合同解除条件条款
- 2025年度高端会所室内涂料施工服务协议
- 物理化学实验:实验一 溶解热的测定
- 茂县生活垃圾资源化综合利用项目环评报告
- 4月份公路养护工作计划
- 保安员在岗培训法律-2
- 初中英语中考专题训练阅读理解-应用文篇
- YC/T 210.2-2006烟叶代码第2部分:烟叶形态代码
- GB/T 20671.1-2006非金属垫片材料分类体系及试验方法第1部分:非金属垫片材料分类体系
- 熵权法教学讲解课件
- 医师病理知识定期考核试题与答案
- 课堂因“融错·容错·溶措”而精彩
- 安宁疗护服务流程
评论
0/150
提交评论