汇编语言求字符串长度代码分析(10)
2009-10-21 10:52
323 查看
来自于《Intel汇编语言程序设计》(第四版)第八章,该过程返回字符串长度到EAX寄存器中,调用该过程时需要传递字符串的偏移,如:
INVOKE Str_length,ADDR myString
Str_length过程代码如下:
Str_length PROC USES edi,
pString : PTR BYTE ; pointer to string
mov edi,pString
mov eax,0 ; character count
L1: cmp byte ptr [edi],0 ; end of string?
je L2 ; yes : quit
inc edi ; no : point to next
inc eax ; add 1 to count
jmp L1
L2: ret
Str_length ENDP
该过程首先接受字符串的偏移值,然后将偏移值保存到edi中,随后判断是否到达了字符串的末尾,如果不是,则edi地址加1,eax的值加1,然后继续循环,最后得到的EAX中的值就是字符串的长度。
INVOKE Str_length,ADDR myString
Str_length过程代码如下:
Str_length PROC USES edi,
pString : PTR BYTE ; pointer to string
mov edi,pString
mov eax,0 ; character count
L1: cmp byte ptr [edi],0 ; end of string?
je L2 ; yes : quit
inc edi ; no : point to next
inc eax ; add 1 to count
jmp L1
L2: ret
Str_length ENDP
该过程首先接受字符串的偏移值,然后将偏移值保存到edi中,随后判断是否到达了字符串的末尾,如果不是,则edi地址加1,eax的值加1,然后继续循环,最后得到的EAX中的值就是字符串的长度。
相关文章推荐
- 汇编语言裁剪字符串代码分析(11)?
- 32位汇编语言学习笔记(10)--分析for循环的汇编代码
- 汇编语言字符串加密代码分析(2)
- 王爽 汇编语言第二版 实验8 代码详细分析
- 王爽 汇编语言第二版 实验9 根据材料编程 代码及分析
- 汇编代码对应的高级语言分析
- 汇编语言数组中查找正数代码分析(3)
- 汇编语言数组求和代码分析
- 32位汇编语言学习笔记(8)--分析do-while循环的汇编代码
- 32位汇编语言学习笔记(9)--分析while循环的汇编代码
- 汇编语言表格驱动分支选择代码分析(4)
- 汇编语言冒泡排序算法代码分析(12)
- 汇编语言醉汉走路代码分析(15)
- 汇编语言 第三版 王爽 实验10 显示字符串 show_str 独立完成
- Javascript 字符串字节长度计算函数代码与效率分析(for VS 正则)
- 汇编语言AAA指令多字节加法代码分析(5)
- 汇编语言二分查找排序代码分析(13)
- 汇编语言循环遍历链表代码分析(16)
- 汇编代码对应的高级语言分析
- 汇编语言:实验10 根据材料编程—1.显示字符串