汇编语言 编程实现由键盘输入任意一个字符,将该字符的ASCII码值显示在屏幕上。

作者&投稿:拓羽 (若有异议请与网页底部的电邮联系)
用汇编语言编译一个程序\从键盘输入一个字符串将其每个字符的ASCII码显示在屏幕上~

data segment para
str1 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
assume cs:code,ss:ssg,ds:data
main proc far
mov ax, data
mov ds, ax
mov ah, 1 ;键盘输入
int 21h
call asc2bin
mov bl, al
mov bh, 0
dec bx
shl bx, 1
mov dx, tab[bx]
mov ah, 9
int 21h
mov ax, 4c00h
Int 21h
main endp
;将ASCII转换为二进制数
;入口:AL存放ASCII
;出口:转换后数值在AL
asc2bin proc
sub al, 30h
cmp al, 9
jbe next
sub al, 7
next: ret
asc2bin endp
end main

;=================================
DATA SEGMENT
MSG0 DB 13, 10, 'This Program can display ASCII.$'
MSG1 DB 13, 10, 'press any key...', 13, 10, '$'
MSG2 DB 13, 10, 'the ascii of this letter is $'
DATA ENDS
;---------------------------------
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
MOV DX, OFFSET MSG0
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H ;显示.
;---------------------------------
LOP:
MOV DX, OFFSET MSG1
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H ;显示.
MOV AH, 1 ;1号功能调用,键入、显示.
INT 21H ;
CMP AL, 13
JZ EXIT ;回车就结束.
PUSH AX
MOV DX, OFFSET MSG2
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H
;------------------------
POP AX
CALL CHANUM ;调用显示程序.
JMP LOP
;---------------------------------
EXIT:
MOV AH, 4CH
INT 21H
;---------------------------------
CHANUM: ;显示AL中的ASCII码.
MOV AH, 0 ;下面显示两位16进制数.
MOV BL, 16
DIV BL
PUSH AX
MOV DL, AL
ADD DL, '0'
CMP DL, 3AH
JB H1
ADD DL, 7
H1:
MOV AH, 2
INT 21H
POP AX
MOV DL, AH
ADD DL, '0'
CMP DL, 3AH
JB H2
ADD DL, 7
H2:
MOV AH, 2
INT 21H
MOV DL, 'H' ;显示H.
INT 21H
MOV DL, '.'
INT 21H
RET
;---------------------------------
CODE ENDS
END START
;=================================

DATA SEGMENT
DATA1 DB 'PLEASE PUT A CHAR:$'
DATA2 DB 0AH,0DH,'THE ASCII OF THE :$'
SD DB 'A'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET DATA1 ;显示提示信息
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
MOV SI,OFFSET SD
MOV [SI],AL
MOV [SD],AL
MOV DX,OFFSET DATA2 ;显示提示信息
MOV AH,09H
INT 21H
MOV AL,DS:[SI]
AND AL,0F0H ;取高4 位
MOV CL,4
SHR AL,CL
CMP AL,0AH ;是否是A 以上的数
JB C2
ADD AL,07H
C2: ADD AL,30H
MOV DL,AL ;显示字符
MOV AH,02H
INT 21H
MOV AL,DS:[SI]
AND AL,0FH ;取低4 位
CMP AL,0AH
JB C3
ADD AL,07H
C3: ADD AL,30H
MOV DL,AL ;显示字符
MOV AH,02H
INT 21H
MOV AH,4CH ;返回DOS
INT 21H
CODE ENDS
END START


宁县18062476375: [汇编语言]由键盘输入任意字符串 然后显示出来 -
安浩溴丙: 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 ...

宁县18062476375: 汇编语言中怎样从键盘中任意输入一个数并存 -
安浩溴丙: 这个程序能接受256个字符,如果你还想输入更多的字符,只需要把空间留的更多一点就行 data segment keyboard db 256 dup (?) ;为输入的字符串预留空间 data ends code segment assume cs:code,ds:data main proc far mov ax,data mov ...

宁县18062476375: 汇编语言 编程实现由键盘输入任意一个字符,将该字符的ASCII码值显示在屏幕上. -
安浩溴丙: 参考:http://hi.baidu.com/do_sermon/item/2fae6f90efe1c04cf042156f

宁县18062476375: 用汇编语言编程实现从键盘输入一个字符带回显,并将键盘输入的那个字符在屏幕上换行显示出来 -
安浩溴丙: .MODEL SMALL .DATA .CODE START:MOV AX, @DATAMOV DS, AX MOV AH, 1INT 21H MOV BL, AL MOV DL, 13 ;回车MOV AH, 2INT 21HMOV DL, 10 ;换行INT 21H MOV DL, BL ;显示INT 21HMOV AH, 4CHINT 21HEND START

宁县18062476375: 汇编语言,从键盘输入一字符串 -
安浩溴丙: ;经运行,符合题目要求 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 ;定...

宁县18062476375: 用汇编语言实现,从键盘输入任意字符(字母、数字、特殊符号等),并将其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

宁县18062476375: 从键盘输入一个字符串在下一行逆序输出用汇编语言如何实现 -
安浩溴丙: 从键盘输入一个字符串在下一行逆序输出用汇编语言可用如下方法实现: ;汇编语言输入一串字符串,可以调用DOS功能中断INT 21H的06H功能. ;程序功能:输入一串字符,以回车符结束,输入字符串最大长度200字符; ; 输入结束在下一...

宁县18062476375: 在汇编语言中 如何经过键盘将值输入给指定的字符?急...... -
安浩溴丙: 以下是画圆的程序 DATAS SEGMENT COLOR DW 02 BKCOLOR DW 15 X DW 280 Y DW 240 INF01 DB 13,10,'PLEASE INPUT THE RADIUS(100~999):$' BUFFER DB 10,3,7 DUP(?) RADIUS DW 0 TEN DB 10 HRD DB 100 DATAS ENDS ...

宁县18062476375: 用汇编语言编译一个程序\从键盘输入一个字符串将其每个字符的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 ...

宁县18062476375: 汇编语言中怎样从键盘中任意输入一个数并存入BX中? -
安浩溴丙: DATA SEGMENTTISHI DB 'INPUT DATA',CR,LF,'&'DATA END MOV AX,DATAMOV DS,AXMOV DX,OFFSET TISHIMOV AH,9INT 21H------显示提示MOV AH,1INT 21HMOV BL,AL------保存输入

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网