汇编上机题(上)

题目一:编写一程序,比较两个字符串所含字符是否相等,如果相等,在屏幕上显示“Y”,反之显示“N”。
DATAS SEGMENT
    CUE1 DB 'PLEASE INPUT A STRING:$'
    CUE2 DB 'PLEASE INPUT ANOTHER STRING:$'
    BUFF1 DB 10H DUP('$')
    BUFF2 DB 10H DUP('$')
    NEWLINE DB 13,10,'$'
DATAS ENDS

STACKS SEGMENT
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS 
    MOV DS,AX
    MOV ES, AX
    
   	;9号输出字符串
    MOV DX, OFFSET CUE1 ; 没有偏移,因为输出常量字符串
    MOV AH, 9
    INT 21H
    
    ;10号输入字符串
    LEA DX, BUFF1
   	MOV AH, 0AH
    INT 21H
    
    ;输出换行
    LEA DX, NEWLINE
    MOV AH, 9
    INT 21H
    
    LEA DX, CUE2
    MOV AH, 9
    INT 21H
    
    LEA DX, BUFF2
    MOV AH, 0AH
    INT 21H
    
    MOV AH, 9
    MOV DX, OFFSET NEWLINE
    INT 21H
    
    MOV CL, BUFF1+1
    CMP CL, BUFF2+1
    JNE OUTPUT_N
    
    
    MOV SI, OFFSET BUFF1+1
    MOV DI, OFFSET BUFF2+1
    CLD
    REPE CMPSB
    JE OUTPUT_Y
    
OUTPUT_N:
 	MOV AH, 9                  ;
    MOV DX, OFFSET NEWLINE     ;
    INT 21H                    
    
	MOV AH, 2
	MOV DL, 'N'
	INT 21H
	JMP HALT
OUTPUT_Y:
	MOV AH, 9                  ;
    MOV DX, OFFSET NEWLINE     ;
    INT 21H                    ;

	MOV AH, 2
	MOV DL, 'Y'
	INT 21H
	JMP HALT
    
HALT:
    MOV AX,4C00H
    INT 21H
CODES ENDS
    END START
题目二:从键盘输入任意一串小写字符(字符个数可变),将输入的小写字符转换为相应的大写字符,并在显示器上显示输出。
DATAS SEGMENT
    BUF DB 20H DUP('$')
    NEWLINE DB 13,10,'$'
DATAS ENDS

STACKS SEGMENT
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    
    LEA DX, BUF
    MOV AH, 0AH
    INT 21H
    
    MOV CL, BUF+1 ; cl中保存输入字符串实际的个数
    XOR CH, CH
    MOV SI, 2 ; 偏移2个字节
    
    
LOP:MOV BL, BUF[SI]
	SUB BL, 20H
	MOV BUF[SI], BL
	INC SI
	LOOP LOP
	
	MOV AH, 9
	MOV DX, OFFSET NEWLINE
	INT 21H
	
	
	MOV AH, 9
	MOV DX, OFFSET BUF+2
    INT 21H
    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值