[汇编语言]由键盘输入任意字符串 然后显示出来
不是很理解楼主的意思,像是输入a输出a这种的么?
DATASSEGMENT
A100DUP(?)
DATASENDS
CODESSEGMENT
ASSUMECS:CODES,DS:DATAS,SS:STACKS
START:
MOVAX,DATAS
MOVDS,AX
MOVSI,OFFSETA
MOVCX,20
L:MOVAH,01H
INT21H
MOVA[SI],AL
INCSI
LOOPL
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
扩展资料
汇编语言的优点
汇编语言的出现大大方便了程序员的程序编写和记忆,使计算机语言的发展向前迈进了一大步。但实际上,汇编语言仍然是一种低级语言,仍然是面向机器硬件的程序设计语言。
正因为如此,汇编语言今天仍被广泛用于编写面向机器硬件的实时控制程序和系统程序。例如机器自检、系统初始化、实际的输入和输出设备的操作等。
keyboard db 256,?,256 dup (?)
data ends
code segment
assume cs:code,ds:data
main proc far
mov ax,data
mov ds,ax
lea dx,keyboard
mov ah,0ah;输入字符串
int 21h
lea di,keyboard
mov cl,[di+1];取出实际输入字符的个数
mov ch,0
add di,2;指向第一个字符
next:mov dl,[di]
mov ah,2;循环输出字符
int 21h
inc di
loop next
mov ah,4ch
int 21h
main endp
code ends
end main
这个程序能接受256个字符,如果你还想输入更多的字符,只需要把空间留的更多一点就行
data segment
keyboard db 256 dup (?) ;为输入的字符串预留空间
data ends
code segment
assume cs:code,ds:data
main proc far
mov ax,data
mov ds,ax
lea dx,keyboard ;这个中断能使你在输入时就能看见输入的字符
mov ah,9
int 21h
mov ah,1 ;这个中断是为了使程序暂停一下,不然你按回车键就立刻结束
int 21h
mov ah,4ch
int 21h
main endp
code ends
end main
用汇编语言编程:从键盘输入一行字符,统计字母、空格、数字、其他字符的...
;从键盘输入一行字符,统计字母、空格、数字、其他字符的个数,并显示 ;用80x86汇编语言编程如下:;--- DATA SEGMENT PARS DB 100 ;准备接收100个字符.NNN DB ? ;用于存放实际输入的个数.III DB 100 DUP(?) ;100字节的空间.N_N DB ?S_N DB ?C_N DB ?O_N...
用汇编语言写:从键盘输入一个十进制数(100以内),将其转变为二进制数并...
print MACRO para lea dx,para mov ah,9 int 21h ENDM data segment buffer db 2,0,2 dup(?)TEN db '请输一个100之内的两位数:$'HEX db '16进制:$'BIN db ' 2进制:$'CRLF db 0dh,0ah,24h data ends code segment assume cs:code, ds:data start: mov ax,data mov ds,...
使用汇编语言,从键盘上输入0-65535之间的十进制数,将其转换成十六进制数...
;输入不超过65535的10进制数,将其以16位的形式显示code segment assume cs:code org 100hstart: jmp bbbx dw 0msg1 db 10,13,'please input a number:','$'msg2 db 10,13,' ','$'bbb: push cs pop ds lea dx,msg1 mov ah,9 int 21h lea...
用汇编语言设计程序:从键盘输入若干字符(输入回车结束),统计其中字符...
本程序最多能输入255个字符包括回车,输出统计时,第一个数字是数字字符个数,第二个是字母,第三个是其它。assume cs:code,ds:data data segment da1 db 255 da2 db ?da3 db 255 dup (?)data ends stack segment stack db 256 dup (?)stack ends code segment start:mov ax,data mov ds...
汇编语言,键盘输入字符,若是0~9,则直接显示
;汇编语言,键盘输入字符,;若是0~9,则直接显示.;若是A~Z或a~z,则均显示‘*’。;若是其它字符则不显示,继续等待新的字符输入,;用回车键结束程序。ASSUME CS:CC, DS:QWER ;=== QWER SEGMENT TIP1 DB 10, 13, 'Please input char, CR then END : 'DB 10, 13, 36 QWER...
汇编语言题目 从键盘上输入0~9之间的任意一个数字,利用查表的方法计算...
INT 21H ;输入一字符 CMP AL, '0'JB EXIT CMP AL, '9'JA EXIT AND AL, 0FH ;AL=0~9 MOV AH, 0 MOV BX, AX ;BX=0~9 ADD BX, BX MOV AX, [BX] ;查表得出结果 LEA DX, OUT_TABLE ADD DX, AX MOV AH, 9 ;显示 IN...
编写汇编语言程序段:从键盘输入一个字符串“please input a number...
CODE SEGMENT ASSUME CS:CODE ORG 100H START: JMP BBB BUF DB 254 DUP(' '),'$' LHCR DB 10,13,'$' BBB: PUSH CS POP DS PUSH CS POP ES
使用8086汇编语言编写程序实现:将从键盘输入的小写字母转换成大写字母...
data\\x0d\\x0amov ds,ax\\x0d\\x0alea bx ,chars\\x0d\\x0amov si,0\\x0d\\x0amov ch,0\\x0d\\x0a;---输入字符子程序\\x0d\\x0ascanf:\\x0d\\x0amov ah,1\\x0d\\x0aint 21h\\x0d\\x0acmp al,0dh\\x0d\\x0ajz crt\\x0d\\x0acmp al,61h\\x0d\\x0ajnb L1 ;al>='a'\\x...
试编写一个汇编语言程序,从键盘输入一个字符,若该字符是大写字母,在...
INT 21H ;输入一个字符 CMP AL, 1BH ;是[esc]?JZ EXIT CMP AL, 'A' ;小于'A'?JB LB_NO CMP AL, 'z' ;大于'z'?JA LB_NO CMP AL, 'Z' ;小于等于'Z'?JBE UUU CMP AL, 'a' ;小于'a'?JB LB_NO ;--- PRINT MSG_LOWE...
用汇编语言实现,要求:从键盘输入两个五位数,实现两个数的加法,包含最高...
INT 21H;显示输入提示1 MOV DX,OFFSET N1 MOV AH,0AH INT 21H ;输入数字1 CALLHH MOV DX,OFFSET BCD2 MOV AH,9H INT 21H ;显示输入提示2 MOV DX,OFFSET N2 MOV AH,0AH INT 21H ;输入数字2 CALLHH MOV DX,OFFSET BCD3 MOV AH,9H INT 21H ;显示结果提示 ;输入数据完毕,下面开始...
丰详畅泽: data segment keyboard db 256,?,256 dup (?) data ends code segment assume cs:code,ds:data main proc far mov ax,data mov ds,ax lea dx,keyboard mov ah,0ah;输入字符串 int 21h lea di,keyboard mov cl,[di+1];取出实际输入字符的个数 mov ...
桦川县17324797950: 汇编语言,从键盘输入一字符串 - ?
丰详畅泽: ;经运行,符合题目要求 code segment assume cs:code,ds:code org 100h start: push cs pop ds Q0:lea dx,Buffer mov ah,9 ;显示提示 int 21h mov si,200h ;硬编码缓冲区首址 mov byte ptr [si],0ffh ;置输入缓冲区大小为255个字符 mov dx,si ;定...
桦川县17324797950: 用汇编语言实现,从键盘输入任意字符(字母、数字、特殊符号等),并将其ASC2码值输出 - ?
丰详畅泽: code segment assume cs:code start:mov ah,01h int 21h mov cx,02h n:call der cmp dl,09h ja next add dl,30h mov ah,02h int 21h loop n nc:int 3h next:add dl,37h mov ah,02h int 21h loop n jmp nc der:push cx mov dl,00 mov cx,4 b:shl al,1 rcl dl,1 loop b pop cx ret code ends end start
桦川县17324797950: 从键盘输入一个字符串在下一行逆序输出用汇编语言如何实现 - ?
丰详畅泽: 从键盘输入一个字符串在下一行逆序输出用汇编语言可用如下方法实现: ;汇编语言输入一串字符串,可以调用DOS功能中断INT 21H的06H功能. ;程序功能:输入一串字符,以回车符结束,输入字符串最大长度200字符; ; 输入结束在下一...
桦川县17324797950: 用汇编语言编译一个程序\从键盘输入一个字符串将其每个字符的ASCII码显示在屏幕上 - ?
丰详畅泽: data segment parastr1 db 'one', '$'str2 db 'Two', '$'str3 db 'Three', '$'str4 db 'four', '$'str5 db 'five', '$'tab dw str1,str2,str3,str4,str5 data ends ssg segment stack dw 256 dup(?) ssg ends code segment para ...
桦川县17324797950: 用汇编语言编程,从键盘输入字符串,并将大小写互换,然后显示 - ?
丰详畅泽: 问题非常多:1. 首先题目就有问题,不可能“接收从键盘输入的字符,以CTR+C 结束”.对于命令提示符来说,按下CTRL+C,就会强行退出这个程序,所以不可能以CTRL+C结束的.应该是按回车结束输入.2. DATA里有中文标点符号.3. ...
桦川县17324797950: 编写汇编语言程序段:从键盘输入一个字符串“please input a number”存入BUFF - ?
丰详畅泽: code segmentassume cs:codeorg 100h start: jmp bbb data db 255 n db ? buff db 255 dup(?) bbb: push cspop dspush cspop eslea dx, datamov ah,10int 21h ; 从键盘输入字符串,字符串的字符个数在n中,串的开始地址为buff首地址...........mov ah,4chint 21h code endsend start
桦川县17324797950: 汇编语言 编程实现由键盘输入任意一个字符,将该字符的ASCII码值显示在屏幕上. - ?
丰详畅泽: 参考:http://hi.baidu.com/do_sermon/item/2fae6f90efe1c04cf042156f
桦川县17324797950: 汇编语言:从键盘输入字符,以回车键结束,将字符串中包含的字母输出到屏幕第2行,包含的数字输出到第3行 - ?
丰详畅泽: CODE SEGMENTASSUME CS:CODESTART: JMP BBBMSG1 DB 'please input: $'STR0 DB 255STR1 DB ?STR2 DB 255 DUP('$')ALPHA0 DB 13,10ALPHA DB 255 DUP('$')NUMBER0 DB 13,10NUMBER DB 255 DUP('$') BBB: ...
桦川县17324797950: 从键盘接受一个字符串 汇编语言 - ?
丰详畅泽: 调试通过! DATAS SEGMENTmeg1 db 'Input:$'meg2 db 0dh,0ah,'$'meg3 db 20 dup(0) DATAS ENDS STACKS SEGMENT;此处输入堆栈段代码 STACKS ENDS CODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS ...