`

Delphi循环语句对应的汇编语句序列-- 转

 
阅读更多

count: 终值, start:起始值
正向:
语句:for i:=0 to count do
汇编:mov eax, [count]
test eax, eax
jl XXX
inc eax
[循环体]
dec eax
jnz [循环体]
XXX

语句:for i:=0 to count-1 do
汇编:mov eax, [count]
dec eax
test eax, eax
jl XXX
inc eax
[循环体]
dec eax
jnz [循环体]
XXX

语句:for i:=1 to count do
汇编:mov eax, [count]
test eax, eax
jle XXX
[循环体]
dec eax
jnz [循环体]
XXX

语句:for i:=1 to count-1 do
汇编:mov eax, [count]
dec eax
test eax, eax
jle XXX
[循环体]
dec eax
jnz [循环体]
XXX

语句:for i:=start to count do
汇编:mov edx, [start]
mov eax, [count]
sub eax, edx
jl XXX
inc eax
[循环体]
dec eax
jnz [循环体]
XXX

语句:for i:=start to count - 1 do
汇编:mov edx, [start]
mov eax, [count]
dec eax
sub eax, edx
jl XXX
inc eax
[循环体]
dec eax
jnz [循环体]
XXX

逆向:
语句:for i:=count downto 0 do
汇编:mov eax, [count]
cmp eax, 0
jl XXX
[循环体]
dec eax
cmp eax, -1
jnz [循环体]
XXX

语句:for i:=count-1 downto 0 do
汇编:mov eax, [count]
dec eax
cmp eax, 0
jl XXX
[循环体]
dec eax
cmp eax, -1
jnz [循环体]
XXX


语句:for i:=count downto 1 do
汇编:mov eax, [count]
cmp eax, 1
jl XXX
[循环体]
dec eax
test eax, eax
jnz [循环体]
XXX


语句:for i:=count-1 downto 1 do
汇编:mov eax, [count]
dec eax
cmp eax, 1
jl XXX
[循环体]
dec eax
test eax, eax
jnz [循环体]
XXX


语句:for i:=count downto start do
汇编:mov edx, [start]
mov eax, [count]
sub edx, eax
jg XXX
dec edx
[循环体]
inc edx
jnz [循环体]
XXX


语句:for i:=count - 1 downto start do
汇编:mov edx, [start]
mov eax, [count]
dec eax
sub edx, eax
jg XXX
dec edx
[循环体]
inc edx
jnz [循环体]
XXX

分享到:
评论

相关推荐

    Delphi 与汇编入门

    初学 Delphi 嵌入汇编[23] - LOOP 循环 初学 Delphi 嵌入汇编[24] - 汇编语言的简单数据类型 初学 Delphi 嵌入汇编[25] - 在汇编中调用函数 初学 Delphi 嵌入汇编[26] - 大小写字母转换 初学 Delphi 嵌入汇编...

    delphi sql语句序列化类

    在Delphi编程环境中,为了方便地管理和操作SQL语句,开发者可能会创建一个专门的序列化类来处理这些语句。这个"delphi sql语句序列化类"的设计目的就是提供一种高效且灵活的方式,使得SQL指令可以被存储、传输和恢复...

    DELPHI 10.3编码转换 iso-8859-1转GBK,GBK转iso-8859-1

    本文将深入探讨标题提及的“DELPHI 10.3编码转换:iso-8859-1转GBK,GBK转iso-8859-1”,以及在二维码生成中的应用,以解决乱码问题。 首先,我们需要理解两种编码系统的基础知识。`ISO-8859-1`是一种单字节编码...

    Delphi编程语句基础(分支与循环)

    ### Delphi编程语句基础(分支与循环) #### 一、语句 在Delphi编程中,算法通过一系列语句来实现。Pascal语句主要分为两大类:简单语句和构造语句。 ##### 1. 简单语句 简单语句是指不包含其他语句的基本操作单元...

    Delphi7使用case语句实现反汇编

    通过分析这些文件,我们可以深入理解 Delphi7 中如何使用 `case` 语句和其他 Object Pascal 特性来构建一个反汇编器。 总结来说,Delphi7 利用 `case` 语句实现反汇编,主要涉及对机器码进行解析,根据不同的指令...

    OD的DELPHI版反汇编引擎

    OD的DELPHI版反汇编引擎是一款专为DELPHI编程语言设计的反汇编工具,它允许程序员深入理解程序的内部运作机制,尤其是在逆向工程、软件调试和安全分析等领域发挥着重要作用。反汇编引擎是将机器语言转换为人类可读的...

    最强大的delphi反汇编工具

    然而,当涉及到软件逆向工程时,"最强大的Delphi反汇编工具" 提供了一个独特且强大的功能,即能够对由Delphi编译的.exe文件进行反汇编。 反汇编工具的主要作用是将已编译的机器代码转换回源代码的近似表示,这对于...

    delphi_JSON序列化反序列化

    本篇将深入探讨Delphi中的JSON序列化和反序列化技术。 一、JSON简介 JSON是一种独立于语言的数据表示格式,它基于ECMAScript的一个子集。一个有效的JSON对象通常包含键值对(key-value pairs)的集合,数组或其他...

    Delphi中sql语句的使用总结

    ### Delphi中SQL语句的使用总结 在Delphi中使用SQL语句是与数据库进行交互的重要手段之一。本文将详细介绍如何在Delphi环境中构造和执行SQL查询,并给出具体的示例来帮助理解。 #### 一、基本SQL查询的构建 在...

    delphi-C语言到Delphi的转换器-语言转换.zip

    标题中的“delphi-C语言到Delphi的转换器”指的是一个工具或程序,它能够帮助开发者将用C语言编写的代码转换成Delphi语言。在软件开发中,这样的转换可能出于多种原因,如项目迁移、利用Delphi的特定功能或者为了在...

    delphi数据库字段数量方法

    delphi数据库字段数量方法 方法1:sql2000查询语句 ---------------------------------- declare @objid int,@objname char(40) set @objname = 'a'--表名称 select @objid = id from sysobjects where id = object_...

    Delphi汇编例子

    汇编语言是一种低级语言,它与计算机的机器指令直接对应,因此能够实现对系统资源的精确控制。 1. **Delphi中的汇编支持**: Delphi集成了一个称为TASM( Turbo Assembler)的汇编器,允许开发者在Pascal源代码中...

    在Delphi中使用汇编语言..rar

    1. **汇编语言基础**:汇编语言是一种低级编程语言,每个指令对应处理器的一个机器码,直接控制硬件操作。尽管它比高级语言难学,但它的效率高,对于处理速度敏感的任务很有优势。 2. **使用Inline Assembler**:...

    Delphi 跳出循环的几种方法

    Delphi 跳出循环的几种方法Delphi 跳出循环的几种方法 我常用的几种方法 希望大家看看 那个是大家常用的而且比较不错的 以下是引用片段: Delphi中break,exit,abort跳出循环的比较 exit: 退出函数体 abort: ...

    SQL语句转换(delphi与MS SQL语句进行转换)

    6. **游标和循环**:在Delphi中,可能使用For-Loop遍历结果集,而在T-SQL中则使用DECLARE CURSOR和FETCH语句。转换工具需考虑这些差异。 7. **错误处理**:Delphi的Try...Except...Finally与T-SQL的TRY...CATCH块...

    IF嵌套循环语句

    总之,IF嵌套循环语句是Delphi编程中解决复杂条件控制问题的重要工具,尤其适用于处理如公司销售优惠策略等需要多条件判断的场景。在编写这样的代码时,需要注意逻辑的清晰性和效率,以确保程序正确无误地执行预期...

    DELPHI中的汇编语言

    汇编语言如何直接在delphi中使用。希望对有用的朋友提供帮助。主要使用在什么方面就要看你自己 了。

    Delphi通过update语句修改数据库内容..rar

    4. 如果SQL语句中有参数,如上述示例中的`:NewValue`,需要设置对应的TADParameter。在TADOCommand的Parameters集合中添加一个新的参数,设置其Name和Value属性。 5. 调用TADOCommand的Execute方法来执行UPDATE语句...

Global site tag (gtag.js) - Google Analytics