求助:汇编源程序 从键盘输入一个英文字母,作大小写互换,然后显示出来。

求助:汇编源程序 从键盘输入一个英文字母,作大小写互换,然后显示出来。,第1张

code segment

assume cs:code

begin: mov ah,1

int 21h ;1号dos功能调用输入一个字符

xor al,20h ;——这里是最重要的一条语句,完成大小写互换

mov dl,al

mov ah,2

int 21h ;2号dos功能调用输出转换后的字符

mov ax,4c00h

int 21h

code ends

end begin

;汇编语言 从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示出计数结果。

;以下是源程序

;用MASM50编译通过,运行结果如下:

;

;E:\masm1> 1125_3

;

;Please input : ABCD23$

;Total non_digital are: 004

;E:\masm1> 1125_3

;

;Please input : 1234$

;Total non_digital are: 000

;E:\masm1> 1125_3

;

;Please input : DFHGEFEHIEFIJIEJFI8797JHFJ$

;Total non_digital are: 022

;E:\masm1>

;

;程序如下:

data segment

s1 DB 0dh,0ah,'Please input : $'

s2 DB 0dh,0ah,'Total non_digital are: $'

num db 0

data ends

code segment

main proc far

assume cs:code

start:

push ds

mov ax,0

push ax

mov ax,data

mov ds,ax

lea dx,s1

mov ah,9

int 21h

NEXT:

MOV AH,01

INT 21H

CMP AL,'$'

JE DOWN

CMP AL,'0'

JB NO09

CMP AL,'9'

JA NO09

JMP NEXT

NO09:

INC NUM ;输入的是非数字,计数器加1

JMP NEXT

DOWN: ;输入'$',输出结果

lea dx,s2

mov ah,9

int 21h

MOV AL,NUM ;将计数器值以10进制输出

MOV AH,0

MOV DL,100

DIV DL

CALL DISP_P

mov al,ah

mov ah,0

MOV DL,10

DIV DL

CALL DISP_P

XCHG AH,AL

CALL DISP_P

ret

main endp

;============

DISP_P PROC NEAR

PUSH aX

MOV DL,AL

ADD DL,30H

MOV AH,2

INT 21H

POP aX

RET

DISP_P ENDP

;=============

code ends

end start

data segment

rlt db 0,0,'$'

data ends

code segment

assume cs:code,ds:data

begin: mov ax,data

mov ds,ax

mov ah,1

int 21h ;输入第一个数

mov dl,al ;放dl暂存

and dl,0fh ;转换成数值

int 21h ;输入第二个数

and al,0fh ;转换为数值

add al,dl ;相加,和放在al中

xor ah,ah ;将和扩展为16位,放在ax中

mov dl,10

div dl ;和(ax)/10

or al,30h ;商转换为字符

mov rlt,al ;存到rlt中

or ah,30h ;余数转换为字符

mov rlt+1,ah ;存到rlt+1中

mov ah,9

lea dx,rlt

int 21h ;9号dos功能调用显示结果

mov ah,4ch

int 21h

code ends

end begin

程序执行时,输入的两个数之间不要加其他分隔符,比如3和4相加:

输入:34

在4后面显示07

以上就是关于求助:汇编源程序 从键盘输入一个英文字母,作大小写互换,然后显示出来。全部的内容,包括:求助:汇编源程序 从键盘输入一个英文字母,作大小写互换,然后显示出来。、汇编语言 从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示出计数结果。、求助:汇编源程序 从键盘输入2个个位数,相加,然后显示其结果。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10085883.html

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

发表评论

登录后才能评论

评论列表(0条)

保存