【微机原理与汇编】输入数据存入内存区并且输出

【微机原理与汇编】输入数据存入内存区并且输出_第1张图片

输入5个数据然后输出:
代码部分:
输入输出子程序详细解释戳输入输出子程序

DATAS SEGMENT
    ARR DW 10 DUP(?) 
    CHANGELINE DB 13,10,'$' 
   
    STR1 BYTE 'Please input 5 numbers: $'
    STR2 BYTE 'Output your 5 numbers: $'
    
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    
  lea dx,offset STR1
  mov ah,09
  int 21h 
  
  lea dx,offset CHANGELINE
  mov ah,09
  int 21h

 
 
 ;存入内存区主代码
 mov si,0
 
 T0:   ;存
 add si,2
 call INPUT
 mov arr[si],ax
 cmp si,10
 jb T0
 
 lea dx,offset STR2
 mov ah,09
 int 21h
 
 lea dx,offset CHANGELINE
  mov ah,09
  int 21h

 mov ah,0 
 mov si,0
  
 T1:   ;输出
   add si,2
   mov ax,arr[si]
   call OUTPUT
   cmp si,10
   jb T1
  

    MOV AH,4CH
    INT 21H
    
    
INPUT PROC
  
  	PUSH BX
  	PUSH CX
  	PUSH DX


  	MOV DH,10 ;存乘数
 
L1:
   	MOV AH,1
   	INT 21H ;输入
   
   
   	CMP AL,'0'
   	JB L0
   	CMP AL,'9'
   	JA L0   ;不在0-9之内的直接跳到输出
   	SUB AL,48
   	MOV CL,AL;CL<-当前输入的数  CX=CL
   
   
   	MOV AX,BX  ;MUL 默认是乘AX ,BX<-存着之前的数
   	MUL DH
   	ADD AX,CX  ;新数+原来的数*10
   
   	MOV BX,AX  ;把加完后的数存到BX里
   	JMP L1
   
L0:
	MOV AX,BX
   	POP DX
   	POP CX
   	POP BX
   RET
INPUT ENDP ;出口参数是AX存着输入的数

   
OUTPUT PROC  
    PUSH BX
    PUSH CX
    PUSH DX 
    
    
    MOV BH,1;计数器
    MOV CL,10
    
AGAIN:
   
	DIV CL;AL:商 AH:余数
	PUSH AX
	
	CMP AL,0;最后商为0 表示除尽
	JE PRINT
	INC BH
	MOV AH,0
	JMP AGAIN
PRINT:

	CMP BH,0
	JE  OUTPUTOVER
	POP DX
	
	MOV DL,DH
	ADD DL,48
	MOV AH,2
	INT 21H
	DEC BH 
	JMP PRINT
   
OUTPUTOVER:
 	LEA DX,CHANGELINE
   	MOV AH,09H
   	INT 21H
	POP DX
	POP CX 
	POP BX

   	RET
   
OUTPUT ENDP
CODES ENDS
    END START


关于存数据可以看下图理解:

 ;存入内存区主代码
 mov si,0
 
 T0:   ;存
 add si,2
 call INPUT
 mov arr[si],ax
 cmp si,10
 jb T0
 
 lea dx,offset STR2
 mov ah,09
 int 21h
 
 lea dx,offset CHANGELINE
  mov ah,09
  int 21h

 mov ah,0 
 mov si,0
  
 T1:   ;输出
   add si,2
   mov ax,arr[si]
   call OUTPUT
   cmp si,10
   jb T1

【微机原理与汇编】输入数据存入内存区并且输出_第2张图片

你可能感兴趣的:(微机原理与汇编语言,#,实验,汇编,微机原理,单片机)