汇编小程序
来源:互联网 发布:淘宝林珊珊店铺头像 编辑:程序博客网 时间:2024/05/22 17:45
- 简单判断
- 比较大小
- 两个个位数加和
- 几个数相加
简单判断
题目要求:编写程序段从键盘接收一个字符,如是‘Y’,跳转至标号YES;如是‘N’,跳转至标号NO;如果输入的字符既不是‘Y’,又不是’N’,则等待重新输入。要求对输入的大写字母和小写字母同样的处理。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Copyright : SDUT;Author : JueChen;Data : 2016-11-03;Description : 判断输入的字符;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DATA SEGMENT SRT DB 100 DB ? DB 100 DUP(?) TS DB 'Please input a character!$' HH DB 0DH,0AH,'$' WA DB 'Input is not valid$' YES DB 'Y$' NO DB 'N$'DATA ENDSSTACK SEGMENT STACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK;Function Name : OUTPUT 和 INPUT;Description : 输出字符串和输出字符INPUT MACRO SR LEA DX, SR MOV AH, 0AH INT 21H ENDMOUTPUT MACRO SR LEA DX, SR MOV AH, 09H INT 21H ENDMMAIN PROC FAR MOV AX, DATA MOV DS, AX NEXT: OUTPUT TS OUTPUT HH INPUT SRT CALL CHECK CMP AX ,0 JNZ ED OUTPUT WA OUTPUT HH JMP NEXT ED: CALL FINISH RETMAIN ENDP;Function Name : FINISH;Description : 按任意键结束 FINISH PROC MOV AH, 0 INT 16H MOV AH,4CH INT 21H RETFINISH ENDP;Function Name :CHECK;Description :判断输入的字符是不是'Y','y','n','N',如果是则AX!=0,否则AX = 0CHECK PROC MOV CL, SRT+1 MOV AX, 0 CMP CL, 1 JNZ ISVALID MOV DL, SRT+2 CMP DL, 'Y' JZ ISYES CMP DL, 'y' JZ ISYES CMP DL, 'N' JZ ISNO CMP DL, 'n' JZ ISNO ISVALID: MOV AX,0 RET ISNO : OUTPUT NO OUTPUT HH MOV AX, 2 RET ISYES: OUTPUT YES OUTPUT HH MOV AX, 1 RET RETCHECK ENDPCODE ENDS END MAIN
比较大小
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Copyright : SDUT;Author : JueChen;Data : 2016-11-06;Description : 比较两个个位数的大小,输出比较的结果;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DATA SEGMENT HH DB 0DH,0AH,'$' TS DB 'Please input two num!$' ;提示输入数字 WA DB 0DH,0AH,'The input is not legal!$' ;提示输入部分不合法 GR DB 0DH,0AH,'GREAT$' ;第一个数大于第二个数 LESS DB 0DH,0AH,'LESS$' ;第一个数小于第二个数 EQE DB 0DH,0AH,'EQUAL$' ;第一个数等于第二个数 NUM1 DB 100 ;第一个数的存储空间 DB ? DB 100 DUP(?) NUM2 DB 100 ;第二个数的存储空间 DB ? DB 100 DUP(?)DATA ENDSSTACK SEGMENT STACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK;Function Name : OUTPUTSR , INPUTSR;Description : 输出和输入字符串OUTPUTSR MACRO SR LEA DX, SR MOV AH, 09H INT 21H ENDMINPUTSR MACRO SR LEA DX, SR MOV AH, 0AH INT 21H ENDM;Function Name : FINISH;Description : 输出比较的结果,并按任意键结束FINISH MACRO SR OUTPUTSR SR OUTPUTSR HH MOV AH, 0H INT 16H MOV AH, 4CH INT 21H ENDM MAIN PROC FAR MOV AX, DATA MOV DS, AX LOOPINPUT: OUTPUTSR TS OUTPUTSR HH INPUTSR NUM1 OUTPUTSR HH INPUTSR NUM2 CALL CHECK CMP AX, 1 JNZ ISTRUE ;输入合法则输出判断的结果 OUTPUTSR WA OUTPUTSR HH JMP LOOPINPUT ;输入不合法则继续输入 ISTRUE: CMP DL,DH JZ ISEQ JG ISGR JL ISLE ISEQ: FINISH EQE RET ISLE: FINISH LESS RET ISGR: FINISH GR RET RETMAIN ENDP;Function Name : CHECK;Description : 判断输入的数据是不是合法的数据;Return : 合法:AX = 1,DL = NUM1,DH = NUM2,否则:AX = 0CHECK PROC MOV AX, 0 MOV CX, 0 MOV DL, NUM1+1 CMP DL, 1 JNZ LEGAL MOV DL, NUM2+1 CMP DL, 1 JNZ LEGAL MOV DL, NUM1+2 MOV DH, NUM2+2 RET LEGAL: MOV AX,1 RETCHECK ENDPCODE ENDS END MAIN
两个个位数加和
DATA SEGMENT TS DB 0DH,0AH,'Please input the num!$' HH DB 0DH,0AH,'$' WA DB 0DH,0AH,'The input is not legal!$' SUMN DB 00H NUM1 DB 100 DB ? DB 100 DUP(?) NUM2 DB 100 DB ? DB 100 DUP(?) MOOD DB 0AH SUM DB 0DH,0AH,'The sum is :$'DATA ENDSSTACK SEGMENT STACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACKOUTPUTSR MACRO SR LEA DX, SR MOV AH, 09H INT 21H ENDMINPUTSR MACRO SR LEA DX, SR MOV AH, 0AH INT 21H ENDMOUTPUTCHAR MACRO CHA MOV DL, CHA MOV AH, 02H INT 21H ENDMOUTPUTNUM MACRO NU LOCAL LOOPN LOCAL NEXTP MOV AL, NU CBW MOV CX, 0 LOOPN: DIV MOOD MOV BL,AH ADD BL,'0' XOR BH,BH PUSH BX INC CX CBW CMP AX, 0 JNZ LOOPN NEXTP: POP AX OUTPUTCHAR AL DEC CX JNZ NEXTP ENDMMAIN PROC FAR MOV AX, DATA MOV DS, AX NEXT: OUTPUTSR TS OUTPUTSR HH INPUTSR NUM1 OUTPUTSR HH INPUTSR NUM2 CALL CHECK CMP AX,0 JNZ NEXT OUTPUTSR SUM MOV AL, NUM1+2 SUB AL, '0' ADD AL, NUM2+2 SUB AL, '0' MOV SUMN, AL OUTPUTNUM SUMN OUTPUTSR HH CALL FINISH RETMAIN ENDPCHECK PROC MOV AX, 0 MOV CL, NUM1+1 CMP CL, 1 JNZ ISWA MOV CL, NUM2+1 CMP CL, 1 JNZ ISWA MOV CL, NUM1+2 CMP CL, '0' JL ISWA CMP CL, '9' JG ISWA MOV CL, NUM2+2 CMP CL, '0' JL ISWA CMP CL, '9' JG ISWA RET ISWA: OUTPUTSR WA MOV AX, 1 RETCHECK ENDPFINISH PROC MOV AH,00H INT 16H MOV AH, 4CH INT 21H RETFINISH ENDPCODE ENDS END MAIN
几个数相加
DATA SEGMENT BUFFER DW 76,45,73,42,83,67 MIN DW 0 SUM DW 0 MOOD DW 0AH TSM DB 'The min num is : $' HH DB 0DH,0AH,'$' TSS DB 'The sum is : $'DATA ENDSSTACK SEGMENT STACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACKOUTPUTSTR MACRO SR LEA DX, SR MOV AH, 09H INT 21H ENDMOUTPUTCHAR MACRO CHA MOV DL,CHA ADD DL,'0' MOV AH, 02H INT 21H ENDMOUTPUTNUM MACRO NUM LOCAL NEXT LOCAL NEXTOUT MOV AX,NUM CWD MOV CX, 0 NEXT: DIV MOOD PUSH DX INC CX CMP AX,0 JZ NEXTOUT CWD JMP NEXT NEXTOUT: POP DX OUTPUTCHAR DL DEC CX JNZ NEXTOUT ENDMMAIN PROC MOV AX,DATA MOV DS,AX CALL GETMINSUM OUTPUTSTR TSM OUTPUTNUM MIN OUTPUTSTR HH OUTPUTSTR TSS OUTPUTNUM SUM OUTPUTSTR HH CALL FINISH RET MAIN ENDPFINISH PROC MOV AH,00H INT 16H MOV AH,4CH INT 21H RETFINISH ENDPGETMINSUM PROC LEA SI, BUFFER MOV CX, 06H NEXTT: MOV DX, [SI] MOV AX, SUM ADD AX, DX MOV SUM,AX CMP DX,MIN JL ISMIN MOV MIN,DX ISMIN: INC SI INC SI DEC CX JNZ NEXTT JNZ NEXTT RETGETMINSUM ENDPCODE ENDS END MAIN
1 0
- 汇编排序小程序
- 两个汇编小程序
- 一个汇编小程序
- 汇编小程序
- 汇编小程序
- 汇编1-最简单的汇编小程序
- "hello,world!"win32汇编小程序
- 汇编写的交通灯小程序
- 初识exe程序反汇编小感
- 实模式下 一个汇编小程序
- Win32汇编小程序 Windows屏幕拾色器
- Windows下一个汇编小程序列表文件
- 第一个8086汇编小程序
- 【小程序】汇编实现判断回文
- 汇编复制字符串小程序笔记
- 一个汇编小程序:用户登录验证程序
- 终于写成自己的第一个线性汇编小程序
- 从汇编看一个小程序的完整执行过程
- easy UI 获取datagrid选中多少行
- SpringBoot+Freemarker 项目ftl中使用include的异常
- 配置wxWidgets 2.8在vc6的使用
- 总结oninput、onchange与onpropertychange事件的用法和区别
- 遍历文件目录, 以路经为键值返回目录下所有文件名
- 汇编小程序
- 模板方法
- Link OpenBLAS to armadillo
- Windows 查看端口占用及关闭进程
- java.lang.UnsupportedOperationException: Not supported by BasicDataSource
- Androidstudio 多渠道打包apk
- MongoDB的Go语言驱动----mgo的使用指南
- 沉浸式状态栏 实现全屏透明
- 数据填充