02_汇编语言(子程序设计01_基本输入输出函数模板)
2015-04-21 19:53
267 查看
程序要求:
DATA中含一个变量,写一个INPUT方法实现从命令行输入一个数NUM(0<=NUM<=65535),用OUTPUT方法输出这个数。
目的:
INPUT函数模板
OUTPUT函数模板
代码实现:
DATA中含一个变量,写一个INPUT方法实现从命令行输入一个数NUM(0<=NUM<=65535),用OUTPUT方法输出这个数。
目的:
INPUT函数模板
OUTPUT函数模板
代码实现:
;例题:DATA中含一个变量,写一个INPUT方法实现从命令行输入一个数,用OUTPUT方法输出这个数 STACK SEGMENT STACK 'STACK' STAK DW 256 DUP(?) STACK ENDS DATA SEGMENT NUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK MAIN PROC START: MOV AX,DATA MOV DS,AX XOR AX,AX ;AX置0 CALL INPUT CALL OUTPUT MOV AH,4CH INT 21H MAIN ENDP INPUT PROC ;入口参数:无 出口参数:BX(因此不能超过65535) PUSH AX PUSH CX PUSH DX PUSH SI ;保存乘数 XOR BX,BX XOR CX,CX XOR DX,DX MOV SI,10 NEXT: MOV AH,01 INT 21H ;接收键盘的数字 CMP AL,0DH ;判断是否是回车 JZ DONE ;JZ:等于则跳转 CMP AL,'0' JB ERROR1 ;JB:小于则跳转 CMP AL,'9' JA ERROR1 ;JA:大于则跳转 SUB AL,30H ;将ASCII码字符变为对应的数字 MOV CL,AL MOV AX,BX MUL SI ADD AX,CX MOV BX,AX JMP NEXT ;继续接收下一个数据 ERROR1: MOV BX,0FFFFH JMP EXIT DONE: MOV DL,0AH MOV AH,02 INT 21H ;输出回车 MOV DL,0DH MOV AH,02 INT 21H EXIT: POP SI POP DX POP CX POP AX RET ;子程序返回 INPUT ENDP OUTPUT PROC NEAR ;入口参数:BX 出口参数:无 PUSH AX ;保护寄存器 PUSH BX PUSH CX PUSH DX PUSH SI MOV SI,10 ;SI中是除数 XOR CX,CX MOV AX,BX ;入口参数在BX中 NEXT1: MOV DX,0 ;DX存放余数,清零 DIV SI ;AX和DX组成的32位除以16位的SI,商保存在AX中,余数保存在DX中 PUSH DX INC CX ;CX++,CX记录有多少位 CMP AX,0 JNZ NEXT1 ;JNZ 不等于则跳转 OUTP: POP DX ;余数出栈 ADD DL,30H MOV AH,2 INT 21H LOOP OUTP POP SI ;恢复寄存器 POP DX POP CX POP BX POP AX RET ;子程序返回 OUTPUT ENDP CODE ENDS END START
相关文章推荐
- 数据处理的两个基本问题02 - 零基础入门学习汇编语言39
- 数据处理的两个基本问题02 - 零基础入门学习汇编语言39
- 01_汇编语言(基本格式_模板)
- 01.基本数据类型、vector、三大语句、方法、函数、结构体、函数模板
- 汇编语言: 编写子程序嵌套结构的程序,把整数分别用二进制和八进制形式显示出来。
- 汇编语言基本概念(续3)
- 2.解决除法溢出问题-汇编语言(王爽)-实验10 编写子程序
- 汇编语言基本概念(续6)
- 为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈
- 基本语言细节--inline函数的几点分析
- 汇编语言--王爽--实验9 子程序
- 汇编语言各个基本存储器
- 使用MASM12(使用子程序和堆栈平衡原理)- Win32汇编语言020
- 汇编语言基本指令
- 模板语言基本说明
- 汇编语言子程序调用call和ret
- C/C++基本输入输出函数
- C语言 基本输入输出函数
- 06 C++中类、函数、成员模板基本用法
- memcopy()函数c语言实现和汇编实现比较