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

汇编语言数组乘法代码分析(9)

 
阅读更多

 

来自于《Intel汇编语言程序设计》(第四版)第八章,主要用到以下两条指令:

 

STOSB,STOSW和STOSD指令将AL/AX/EAX的内容存储在EDI指向的内存单元中,同时EDI的值将根据方向标志的值增加或减少。

 

LODSB,LODSW和LODSD指令从ESI指向的内存位置向AL/AX/EAX中装入一个值,同时ESI的值根据方向标志值增加或减少。

 

以下为程序源代码,使用了LODSD和STOSD:

 

TITLE Multiply an Array        (Mult.asm)

 

; This program multiplies each element of an array

; of 32-bit integers by  a constant value

 

INCLUDE Irvine32.inc

.data

array DWORD 1,2,3,4,5,6,7,,8,9,10

multiplier DWORD 10

 

.code

main PROC

        cld                                        ; direction = forward

        mov esi, OFFSET array         ; source index

        mov edi,esi                           ; destination index

        mov ecx,LENGTHOF array      ; loop counter

L1:   lodsd                                     ; load [ESI] into EAX

        mul multiplier                        ; multiply by a value

        stosd                                     ; store EAX into [EDI]

        loop L1

        exit

main ENDP

END main

 

 

每次将[ESI]的值赋值给EAX中,然后调用mul指令进行乘法运算,然后结果会保存在EAX中,然后stosd指令将EAX中的值保存到[EDI]中。

 

 

 

 

 

分享到:
评论

相关推荐

    汇编长整数乘法

    在计算机科学中,汇编语言(ASM)是与机器代码紧密相关的编程语言,它允许程序员直接控制硬件资源。本主题聚焦于使用汇编语言实现长整数乘法,这是一个涉及低级计算和优化的重要概念,特别是在处理大数值运算时。 ...

    汇编语言程序大作业(含源代码)[汇编].pdf

    标题和描述提到的“汇编语言程序大作业(含源代码)”指的是一个关于汇编语言编程的项目文档,其中包含了汇编语言的源代码。汇编语言是一种低级编程语言,它与计算机的机器语言非常接近,但提供了更易于理解和使用的...

    大学单片机汇编语言例子乘法加法

    - 示例代码中展示了如何使用汇编语言进行乘法和加法运算。 - `MUL AB` 指令用于执行两个寄存器A和B的乘法,结果分别存放在A和B中(高8位在A,低8位在B)。 - `ADD` 和 `ADDC` 指令分别用于执行不带进位和带进位的...

    汇编语言,矩阵相乘课程设计

    在这个“汇编语言,矩阵相乘课程设计”项目中,我们将探讨如何使用汇编语言实现两个矩阵的乘法操作,这是一种常见的数值计算任务。 矩阵相乘是线性代数中的基本运算,对于两个矩阵A和B,如果A的列数等于B的行数,...

    汇编语言学习课件

    汇编语言,作为机器语言的一种抽象表示,是程序员与计算机硬件直接交流的语言,它以易于人类理解的符号形式来编写程序,然后通过汇编器转换为机器代码。 在学习汇编语言时,首先需要了解的是其基本概念。汇编语言中...

    FIR用汇编语言实现

    汇编语言允许程序员直接控制硬件资源,提高代码执行效率,但编写起来较为复杂且维护困难。在实现FIR滤波器时,通常会涉及到循环结构、算术运算指令、数组访问和存储器操作等关键环节。 CCS(Code Composer Studio)...

    wuxin.rar_汇编矩阵乘法_矩阵 乘法 汇编 实现

    由于汇编语言的低级性质,代码将包含大量的指令,如LOAD(加载数据)、STORE(存储数据)、ADD(加法)、MUL(乘法)等,以及对内存地址的直接操作。理解汇编代码需要对处理器架构和指令集有一定的了解。 总之,...

    汇编语言简单求平均值程序

    ### 汇编语言简单求平均值程序 #### 背景介绍 汇编语言是一种低级编程语言,它直接对应计算机的机器指令集。在本篇内容中,我们将探讨一个简单的汇编语言程序,该程序用于计算一组数值的平均值,并将其精确到小数点...

    汇编语言经典练习题!

    在IT领域,汇编语言是一种低级编程语言,它与计算机硬件紧密相关,直接...在复习过程中,应结合实际案例分析,不断练习编写和调试汇编代码,这样才能真正掌握汇编语言,为后续的系统级编程或底层开发打下坚实的基础。

    汇编语言程序设计练习题及参考答案

    【汇编语言程序设计练习题及参考答案】 汇编语言是一种低级编程语言,它直接对应于计算机硬件的指令系统,用于编写控制计算机硬件的程序。掌握汇编语言可以帮助我们理解计算机底层工作原理,提高程序执行效率。以下...

    汇编语言程序设计实验教程

    1. **简单计算**:如实现加法、乘法等基本运算,展示汇编语言的运算能力。 2. **数据处理**:可能涉及数组操作、字符串处理等,理解内存管理和指针操作。 3. **控制流程**:通过编写带有循环和条件分支的程序,...

    汇编语言指令集(网上收集的)

    9. **宏指令和伪指令**:为了提高代码的可读性和复用性,汇编语言支持宏指令(如`MACRO`和`ENDM`),它们类似于高级语言的函数;伪指令(如`EQU`,定义符号等于特定值)则帮助简化代码。 10. **汇编和链接过程**:...

    王爽《汇编语言》课后习题答案及实验解答(不完全版)

    80x86汇编语言包括数据处理指令(如加法、减法、乘法、除法)、转移指令(如跳转、条件跳转)、控制流指令(如调用、返回)、输入/输出指令等。这些指令的掌握能够帮助我们编写和理解汇编代码,从而实现对计算机硬件...

    2022年'Cx的汇编语言程序设计.pptx

    在本章中,我们将介绍TMS320C54x汇编语言程序设计的基础知识,包括汇编语言的基本概念、汇编语言程序设计的过程、汇编语言的指令系统、数据类型、操作符、控制结构、函数和数组等内容。 首先,让我们来介绍汇编语言...

    Windows32位汇编语言课程设计求大数阶乘

    通过分析代码结构、关键指令以及实现机制,帮助读者深入理解汇编语言编程技巧及其在解决实际问题中的应用。 #### 一、程序结构概述 本程序主要由以下几个部分组成: 1. **数据段**:定义了程序运行所需的常量、...

    排序、加法、乘法、查找汇编程序

    在汇编语言中,查找可能涉及对数组的遍历,比较目标值与数组元素,并根据比较结果调整搜索方向。MASM2012中,程序员需熟练掌握跳转指令(如JMP、JNE等),以便在满足条件时改变程序执行流程。 这些汇编程序提供了...

Global site tag (gtag.js) - Google Analytics