`
qdujunjie
  • 浏览: 110397 次
  • 性别: Icon_minigender_1
  • 来自: Mars
社区版块
存档分类
最新评论

汇编语言求字符串长度代码分析(10)

 
阅读更多

 

 

来自于《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中的值就是字符串的长度。

分享到:
评论

相关推荐

    汇编语言实验字符串位置的查找

    本文将基于提供的汇编代码,解析如何在汇编语言中实现字符串的输入以及特定字符在该字符串中的位置查找。 #### 数据段 (DATAS) 数据段用于定义程序运行时所需的数据变量: ```assembly DATAS SEGMENT cap1 db ...

    x86汇编语言文本字符串查找替换程序

    1. 替换过程:一旦找到目标字符串,程序需要记录其位置并计算新字符串长度,以便在原位置插入新字符串并调整后续文本。 2. 内存管理:替换涉及内存的动态修改,可能需要使用栈或堆来临时存储数据,确保不覆盖原文件...

    汇编语言-求字符长度[归类].pdf

    STR是字符串的存储区域,LENG是用于存储字符串长度的变量。 接下来,我们看到的是CODE SEGMENT,这是程序的代码段,用于存储程序的指令。在这个段落中,我们首先将AX寄存器设置为DATA的段落地址,然后将DS寄存器...

    比较两个字符串大小汇编语言源代码加实验报告

    本主题聚焦于使用汇编语言进行字符串比较,这是计算机科学中的基础操作,广泛应用于各种程序设计中,例如排序、搜索算法或文本处理。下面我们将详细探讨这个主题。 1. **字符串的概念**: 在计算机科学中,字符串...

    用汇编语言将字符串中的字母和数字分开存储

    通过对“用汇编语言将字符串中的字母和数字分开存储”的任务的深入分析,我们可以看到汇编语言的强大之处在于它能够直接控制硬件资源,实现高效且精确的数据处理。尽管其语法和逻辑对初学者来说可能显得复杂,但掌握...

    汇编语言字符串匹配问题

    通过分析这段代码,可以深入理解汇编语言字符串匹配的具体实现细节,包括如何处理内存、控制流程以及如何实现特定的字符串算法。 总之,汇编语言字符串匹配不仅涉及到基本的字符串操作,还涵盖了循环、条件分支、...

    汇编统计字符串数字及字符个数

    在汇编语言编程中,处理字符串和计数特定字符出现的次数是一项常见的任务。这个任务要求我们编写一段程序,能够区分字符串中的字母和数字,并将它们的个数分别存储到预定义的变量中。以下是对这个任务的详细解析: ...

    汇编语言的字符串排序

    在处理特定任务时,比如字符串排序,汇编语言可以提供更高的性能和精细的控制。本篇文章将深入探讨如何使用汇编语言对用户输入的字符串进行排序。 首先,了解基本的汇编语言概念是必要的。汇编语言中的指令通常由...

    汇编语言统计字符串中空格数

    标题中的“汇编语言统计字符串中空格数”是指在汇编语言编程中,编写一个程序来计算一个给定字符串中空格字符的数量。描述提到这是个人自学过程中的练习,表明这是一个学习和验证汇编语言技能的任务。 在给定的代码...

    汇编操作字符串

    求字符串长度时,从字符串的起始地址开始,逐个检查字符,直到遇到'\0'为止。计数器随着遍历的字符数量增加,最后的计数值就是字符串的长度。需要注意,这个过程中不能跳过'\0',否则会得到错误的结果。 3. **字符...

    汇编语言代码_字符串的匹配

    ### 汇编语言代码:字符串的匹配 #### 背景介绍 在计算机科学领域,字符串匹配是一项基本且重要的任务。它不仅被广泛应用于文本处理、编程语言解析器、数据库查询等领域,也是计算机科学基础知识考察的重点之一。...

    汇编字符串匹配

    本文通过对一个具体的汇编语言字符串匹配程序的分析,展示了如何在低级语言中实现字符串匹配功能。这个例子不仅涵盖了基本的数据结构定义,还涉及到了BIOS中断服务的使用、循环控制结构的应用等多方面的知识。通过对...

    汇编语言课程设计 字符串匹配

    字符串的结尾可以使用特定的终止符,如ASCII码的0,或者通过记录字符串长度来确定。 2. **内存访问**:汇编语言中,我们通过地址来访问内存中的数据。在进行字符串匹配时,我们需要用到两个指针,一个指向模式字符...

    汇编语言查找匹配字符串

    输入的字符串长度存储在`act1`变量中,实际输入的字符串存储在`stokn1`数组中。 2. **输入句子**:接着,程序提示用户输入句子,同样使用DOS中断读取输入。句子的长度存储在`act2`变量中,句子本身存储在`stokn2`...

    在C语言函数中调用汇编语言程序实现字符串的拷贝

    存储字符串长度到R0(不包括'\0') MOV R0, R2 ; 从堆栈中恢复LR并返回 POP {PC} ``` 这段汇编代码定义了一个名为`str_copy`的函数,它接受两个参数(源和目标字符串的地址),并拷贝源字符串到目标字符串。...

    汇编字符串处理

    ### 汇编语言中的字符串处理技术解析 在计算机编程领域,尤其是在低级语言如汇编语言中,字符串处理是一项核心技能,它涉及到对字符序列的搜索、替换、删除及插入等操作。本文将深入探讨汇编语言中字符串处理的关键...

    汇编语言:实训汇编语言设计——比较两个字符串

    分析和理解这些代码可以帮助加深对汇编语言字符串比较的理解,并为将来更复杂的汇编编程打下基础。在学习过程中,结合实际代码实践和调试是十分必要的,因为这能帮助我们更好地理解和掌握汇编语言的精髓。

    汇编语言_dearzfw_汇编语言_gather9pi_字符串_二进制_

    标题 "汇编语言_dearzfw_汇编语言_gather9pi_字符串_二进制_" 提供的信息表明,这是一个关于使用汇编语言处理字符串并进行二进制运算的编程任务。描述中提到的具体问题是要统计一个不超过255个字符的字符串中,ASCII...

    基础汇编程序(4)查找字符串中的指定字符

    根据给定的文件信息,本篇文章将详细解析一个基础汇编程序的设计思路及其实现方法。...综上所述,本汇编程序通过合理的指令组织实现了字符串搜索的基本功能,并能有效地处理各种情况,展示了汇编语言的强大和灵活性。

    mips汇编语言实现选择排序(字符串形式输入)

    综上所述,这段MIPS汇编代码不仅展示了如何在MIPS架构中实现选择排序算法,还涉及到了字符串处理、系统调用、循环控制等多个重要的汇编语言编程概念。这对于学习MIPS汇编语言和计算机体系结构都是非常有用的实践案例...

Global site tag (gtag.js) - Google Analytics