编写输入子程序,从键盘输入10个十进制数(0-100),将键盘输入的ASCII码存入数组ARR;

编写输入子程序,从键盘输入10个十进制数(0-100),将键盘输入的ASCII码存入数组ARR;,第1张

===============================================================

  键盘输入数值数组子程序(数组名为array,元素个数存放在num中)

inputnum proc near

       输入的数据以一个空格分隔,以回车符结束输入

      push cs

      pop es

      lea di,array  将数组第一个元素的有效地址置入DI

      mov word ptr[num],0

stin:

      mov ax,0

      push ax

again1:

      mov ah,1

      int 21h

      mov byte ptr[char],al

      cmp al,13

      je line0

      cmp al,' '

      je line0

      sub al,30h

      mov ah,0

      mov si,ax

      pop ax

      mov cl,10

      mov ch,0

      mul cx

      add ax,si

      push ax

      jmp again1

line0:

      pop ax

      mov word ptr[di],ax

      inc word ptr[num]

      cmp byte ptr[char],13

      je stinend

      inc di

      inc di

      jmp stin

stinend:

      ret

array dw 100 dup(0)

num   dw 0

char  db ?

inputnum endp

=====================================================

修改了一下,现在是以F6为结束的,回车结束比较麻烦。

#include <stdio.h>

int keyin(int input[], int n)

{

int k

printf("请输入数组:(空格为分隔符,回车为结束标志) ")

for(k=0k<nk++)

{

if ( scanf("%d", &input[k]) == EOF )

{

break

}

}

return k//如何修改?

}

int main()

{

int i,n

int yhl[10]//如何修改

n = keyin( yhl, 10 )//如何修改?

for ( i = 0i <n++i )

{

printf( "%d ", yhl[i] )

}

printf( "\n")

}

输出二进制的子程序,其实是很简单的。

DATA SEGMENT定义源数据段,数据段名称为DATA

MSR DB"PLEASE INPUT DATA:$"

DATA ENDS

CODE SEGMENT定义代码段, 代码段名称为CODE

ASSUME CS:CODE,DS:DATA

START:

MOV AX, DATA 装载数据段

MOV DS, AX

MOV AH, 09H显示提示信息PLEASE INPUT DATA:

MOV DX, OFFSET MSR

INT 21H

MOV AH, 01H从键盘输入一个一位十进制数,该数据保存在AL中

INT 21H

MOV BL, AL 将AL寄存器的数值存放到BL寄存器中

MOV AH, 02H

MOV DL, 0DH输出回车符号

INT 21H

MOV DL, 0AH输出换行符号

INT 21H

CALL XIANSHI调用子程序

MOV AH, 4CH返回DOS状态,固定结构

INT 21H

-----------------------------------

XIANSHI PROC子函数定义

将BL寄存器中的数值以二进制形式输出

MOV AH, 02H

SUB BL, 30H求出该十进制数

MOV CX, 8 循环次数

AG:

MOV DL, '0'

ROL BL, 1 循环左移一位,后最高位进入C标志

JNC PRINT1 C标志为0,跳到PRINT输出0

INC DL 否则就输出1

PRINT1:

INT 21H

LOOP AG

RET

XIANSHI ENDP

-----------------------------------

CODE ENDS

END START


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12206410.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存