059.irvine32.inc中字符串操作函数综合运用示例

;String Library Demo	(StringDemo.asm)
;该程序演示了irvine32链接库中的字符串处理函数的使用方法

include irvine32.inc

.data
	string_1 BYTE "abcde",0
	string_2 BYTE "ABCDE",0
	msg0	 BYTE "string_1 in upper case:",0
	msg1	 BYTE "string_1 and string_2 are equal",0
	msg2	 BYTE "string_1 is less than string_2",0
	msg3	 BYTE "string_2 is less than string_1",0
	msg4	 BYTE "Length of string2 is:",0
	msg5	 BYTE "string_1 after triming:",0

.code
	main PROC
		
		call trim_string
		call upper_case
		call compare_strings
		call print_length

		call WaitMsg
		exit
	main ENDP

	trim_string PROC
		;从string1尾部删除字符
		invoke Str_trim,addr string_1,'/'
		mov edx,OFFSET msg5
		call WriteString
		mov edx,OFFSET string_1
		call WriteString
		call Crlf

		ret
	trim_string ENDP

	upper_case PROC
		;将string_1转换为大写字母
		mov edx,OFFSET msg0
		call WriteString
		invoke Str_ucase,ADDR string_1
		call WriteString
		call Crlf
		ret
	upper_case ENDP

	compare_strings PROC
	;比较 string_1 string_2
		invoke Str_compare,addr string_1,addr string_2
		.IF ZERO?					;溢出标志位置一,ZERO运算符仅用于.IF .WHILE .REPEAT块 而且汇编的时候不计算,运行时计算
			mov edx,OFFSET msg1
		.ELSEIF CARRY?				;进位标志位置一
			mov edx,OFFSET msg2
		.ELSE
			mov edx,OFFSET msg3
		.ENDIF
		call WriteString
		call Crlf

		ret
	compare_strings ENDP

	print_length PROC
		;显示string_2的长度。
		mov edx,OFFSET msg4
		call WriteString
		invoke Str_Length,addr string_2
		call WriteDec
		call Crlf

		ret
	print_length ENDP
END main			
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值