`
yunchow
  • 浏览: 319784 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

汇编语言实现字符串的拷贝

阅读更多
   今天写了一个小程序,实现了把字符串从存储器的一个单元拷贝到存储器的另一个单元,程序中主要用到了字符串操作指令MOVSB,这个指令比较特殊可以对两个存储单元直接操作,用SI指向源字符串地址,DI指向符加段的目地字符串地址,用这条指令就可以很轻松的将字符串进行拷贝,如果你想循环操作,很简单,在指令前面加上REP伪指令便可实现指定次数的循环,但是要求你把你想要循环的次数送到CX,这样就可以复制字符串了.示例代码如下:
  
   DATAS SEGMENT
    BUF1 DB 'HELLO,WORLD!$'
    COUNT EQU $-BUF1
    BUF2 DB COUNT DUP(?) 
    MSG DB 'COPY COMPLETED!$'
    MSGB DB 'COPY A STRING',13,10
    	 DB 'PRESS ANY KEY TO START...'
    	 DB 13,10,'$'
DATAS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,ES:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV ES,AX

    
    MOV AH,9
    MOV DX,OFFSET MSGB
    INT 21H
    MOV AH,1
    INT 21H
    
	CALL COPY ;CALL COPY PROC
	
    MOV AH,9
    MOV DX,OFFSET MSG
    INT 21H 
    MOV AH,1
    INT 21H   
    MOV AH,4CH
    INT 21H
    ;---------------------
    ;PROC NAMD : COPY
    ;FEATURE : COPY A STRING FORM ONE PLACE TO ANOTHER
    ;INPUT PARAMTER : BUF1,BUF2,COUNT
    ;OUTPUT PARAMETER : NONE
    COPY PROC

    MOV SI,OFFSET BUF1
    MOV DI,OFFSET BUF2
    MOV CX,COUNT
    CLD    
    REP MOVSB  
    RET
    COPY ENDP 
       
CODES ENDS
    END START

   
分享到:
评论

相关推荐

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

    在C语言函数中调用汇编语言程序实现字符串的拷贝: 其中:源串:const char *srcstr=“abcdefghij” 目标串:char *dststr

    汇编操作字符串

    用汇编写的字符串拷贝 求字符串大小 字符串比较,相当于用汇编实现了memcpy,strcpy,strcmp strlen等函数。用vc6.0编辑。

    汇编 字符串复制

    汇编 字符串复制 非串指令,所复制的字符串需要在代码中改动,只可查看内存

    7个自己编写的ARM小程序

    用汇编语言实现字符串的反序存储连接。用调用函数的思想实现字符串的切割和反序存储。运用混合编程实现数串的相加存储。运用混合编程实现数串的反序存储和连接。运用混合编程和函数调用实现数串的切割和连接。几个小...

    微嵌实验1_实验报告.pdf

    3. 实现字符串拷贝功能,使用 C 调用汇编实现字符串拷贝,了解如何补充完成源代码中缺失的部分、实现字符串拷贝功能。 4. 实现求和运算功能,使用汇编调用 C 实现实现求和 1+2+…+N,了解如何补充完成源代码中缺失的...

    电子科技大学微嵌实验.doc

    * 实验 1.3:C 调用汇编实现字符串拷贝功能核心代码分析,了解 C 语言和汇编语言的混合编程技术。 * 实验 1.4:汇编调用 C 实现求和 1+2+...+10 核心代码分析,了解汇编语言和 C 语言的交互使用方法。 * 实验 1.5:...

    汇编程序调试实验报告.doc

    学生需要掌握如何使用MOV指令来传递字符串,并了解如何使用LOOP指令来实现字符串拷贝。 (三) 实例三 在这个实例中,学生需要编写一个汇编语言程序,以实现一个简单的游戏程序。学生需要掌握如何使用汇编语言来实现...

    将字符串str1复制为字符串str2的三种解决方法

    以下是对将字符串str1复制为字符串str2的三种解决方法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助

    从汇编语言到Windows内核编程

    4.1.3 字符串的拷贝 4.1.4 字符串的连接 4.1.5 字符串的打印 4 2 内存与链表 4 2.1 内存的分配与释放 4.2.2 使用LIST_ENTRY 4.2.3 使用长长整型数据 4.2.4 使用自旋锁 第5章 文件与注册表操作 5.1 文件操作 5.1.1 使...

    模拟器与汇编程序设计论文.doc

    第二个汇编源程序的功能是将字符串“Simulator and Assembler”拷贝到另一个字符串中,并且输出另一个字符串,源程序可以自动判断字符串尾部并结束拷贝以及结束输出而不用考虑字符串长度的设定。 四、详细设计 ...

    天书夜谈:从汇编语言到Windows内核编程

     4.1.3 字符串的拷贝 42  4.1.4 字符串的连接 42  4.1.5 字符串的打印 43  4.2 内存与链表 45  4.2.1 内存的分配与释放 45  4.2.2 使用LIST_ENTRY 46  4.2.3 使用长长整型数据 49  4.2.4 使用自选锁 50  第...

    天书夜读:从汇编语言到Windows内核编程(完整版一)

     4.1.3 字符串的拷贝 42  4.1.4 字符串的连接 42  4.1.5 字符串的打印 43  4.2 内存与链表 45  4.2.1 内存的分配与释放 45  4.2.2 使用LIST_ENTRY 46  4.2.3 使用长长整型数据 49  4.2.4 使用自选锁 50  第...

    天书夜读:从汇编语言到Windows内核编程(完整版 二)

     4.1.3 字符串的拷贝 42  4.1.4 字符串的连接 42  4.1.5 字符串的打印 43  4.2 内存与链表 45  4.2.1 内存的分配与释放 45  4.2.2 使用LIST_ENTRY 46  4.2.3 使用长长整型数据 49  4.2.4 使用自选锁 50  第...

    山东大学嵌入式实验报告.doc

    本实验报告旨在介绍 ARM 汇编指令的使用和掌握,涵盖了简单数据搬移、字符串拷贝和 ARM 处理器工作模式等多个方面的知识点。 一、实验一:ARM 汇编指令实验 - 简单数据搬移 * 实验目的:熟悉实验开发环境,掌握...

    汇编课程设计 (fibonacci序列,拷贝,图书管理系统).

    2. 从键盘输入一行字符,以‘$’结束,检查输入的字符串是否包含‘computer’字符串,如果包含,计算包含‘computer’字符串的个数,并以十进制输出个数。 3. 设计一拷贝程序,功能与DOS的COPY命令相同。 4. 建立...

    Js基础试题汇编.docx

    * 模板字符串可以多行,如果要在模板字符串中引用变量使用 ${} 四、类型转换: * 强制转换:使用 Number()、String() 等方法强制转换数据类型 * 隐式转换:使用 + 号进行字符串拼接、使用 == 运算符进行比较时隐式...

    Golang 面试题汇编

    字符串转成byte数组,会发生内存拷贝吗? http包的内存泄漏 sync.Map 的用法 Golang 理论 Go语言的GPM调度器是什么? Goroutine调度策略 goroutine调度器概述 Redis基础 Redis 基础数据结构 Redis中的底层数据结构 ...

    C++反汇编视频教程(代码+课件+视频全套价值300元的付费教程)

    第四讲 布尔型与字符(串) 第五讲 表达式 第六讲 选择结构 第七讲 循环结构 第八讲 变量 第九讲 函数 第十讲 数组 第十一讲 结构体与类 第十二讲 构造函数 第十三讲 拷贝构造函数 第十四讲 析构函数 第十五讲 虚...

    微嵌实验1-实验报告.doc

    实现字符串拷贝功能(C+汇编,必做) 4. 实现求和运算功能(C+汇编,必做) 5. 实现冒泡排序算法(汇编编程,选做) 微处理器系统结构与嵌入式系统设计实验报告 三、实验步骤 1.学习使用keil开发工具 1. 点击...

    级 汇编语言期末复习PPT课件.pptx

    * 字符串处理:比较、查找字符、长度 * 数据转换:ASCII 码 * 数据排序 * 查找给定数据 * 64 位或 128 位数据处理 * 链表处理 * 子程序设计:函数参数传递及返回值 * 状态切换程序设计 * 中断服务程序设计:SWI 指令...

Global site tag (gtag.js) - Google Analytics