汇编-串操作-字符串拷贝



一、实习题目:串操作

二、实习目的:掌握串操作程序设计的基本方针

三、实习内容:将首地址DATA1按字节存储的数据块通过使用字符串操作将其移动到首地址为

DATA2的数据块中。

四、代码:

<strong> </strong>data segment 

  dataOne    db 'It is a temp string',0ah,0dh,'$'
  dataTwo    db 50 dup(?)

  msgOne     db 0ah,0dh,'source string:','$'
  msgTwo     db 0ah,0dh,'distance string:','$'

data ends

code segment

  assume DS:data,CS:code
start:
  mov ax,data;
  mov DS,ax;

  lea si,dataOne;

  mov ax,seg dataTwo;
  mov ES,ax;
  lea di,dataTwo;

  mov cx,22;
again:
  movsb;
  loop again;

  lea dx,msgOne;
  mov ah,09h;
  int 21h;

  lea dx,dataOne;
  mov ah,09h;
  int 21h

  lea dx,msgTwo;
  mov ah,09h;
  int 21h;

  lea dx,dataTwo;
  mov ah,09h;
  int 21h;

  mov ah,4ch;
  int 21h;

code ends
end start

五、运行结果:

时间: 2024-10-13 19:08:04

汇编-串操作-字符串拷贝的相关文章

Strlcpy和strlcat——一致的、安全的字符串拷贝和串接函数

概述 随着流行的缓冲区溢出攻击的增加,越来越多程序员开始使用带有大小,即有长度限制的字符串函数,如strncpy() 和strncat() .尽管这种趋势令人十分鼓舞,但通常的标准C 字符串函数并不是专为此而设计的.本文介绍另一种直观的,一致的,天生安全的字符串拷贝API . 当函数 strncpy()和 strncat()作为 strcpy()和 strcat()的安全版本来使用时,仍然存在一些安全隐患. 这两函数以不同的,非直观的方式来处理NUL 结束符和长度参数,即使有经验的程序员也会混淆

汇编字符串拷贝

1 DATAS SEGMENT 2 str1 db 'it is a temp string',0ah, 0dh,'$' 3 str2 db 50 dup(?) 4 msg1 db 0ah,0dh,'source string:','$' 5 msg2 db 0ah,0dh,'distance sting:','$' 6 DATAS ENDS 7 8 STACKS SEGMENT 9 ;此处输入堆栈段代码 10 STACKS ENDS 11 12 CODES SEGMENT 13 ASSUME

汇编实现: C库常见函数,串操作指令作用

目录 汇编实现: C库常见函数 一丶汇编实现Strncpy拷贝函数 汇编实现: C库常见函数 一丶汇编实现Strncpy拷贝函数 void __asmStrncpy(char *des,char *src,int len) { __asm { mov edi,[ebp + 8]; //获取局部变量地址 des mov esi,[ebp + 0xc]; //获取局部变量地址 src mov ecx,len; //使用movs指令,需要给ecx长度 cld //设置DF = 0; 内存方向, 此时e

关注C++细节——字面值初始化字符数组及字符串拷贝注意

char carr[] = "author:CSDN-iaccepted"; 此时,carr数组中元素的个数为21,最后一个位置用来存放空字符'\0'. 所以如果写成carr[21] = "author:CSDN-iaccepted";就是错误的. int clen = strlen(carr); int size = sizeof(carr); 这时候得到的clen = 21,size= 22.这就是因为strlen统计串中字符的个数,不计算最后的空字符,但是si

YJX_Driver_038_内核模式下的字串操作

1. 内核模式下的字串操作 A.ASCII字符串和UNICODE字符串 B.ANSI_STRING字符串和UNICODE_STRING字符串 C.字符串的初始化与销毁 D.字符串复制,比较,(大小写,整数和字串)相互转换 E.ANSI_STRING字符串和UNICODE_STRING字符串相互转换 2. A.ASNI字符串和UNICODE字符串 在C语言中,有ANSI和UNICODE 两个不同字串类型. char* s1="abc"; //CHAR * s1="abc&quo

定长串操作

串操作在数据结构中也是十分重要的一部分,首先需要理解串,串长,串相等,空格串,空串,子串的概念.我们在编程过程中,对于字符串的操作,就是一种串结构的使用. 串:是指通常说所的字符串,如:"abcde","PI"等 串长:是指字符串的长度,如:"abcde"长度为5,"PI"长度为2 串相等:两个字符串的长度和内容均相等,如:"abcde"和"abcde" 空格串:字符串由一个或多个空格组

【转】Windows内核下操作字符串!

* Windows内核下操作字符串! */ #include <ntddk.h> #include <ntstrsafe.h> #define BUFFER_SIZE 1024 VOID DriverUnload(IN PDRIVER_OBJECT pDriverObject) { KdPrint(("DriverUnload Load...\n")); } //==================================================

字符串拷贝函数strcpy写法_转

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->// CppReference.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" using namespace std; /* * 说明:字符串拷贝版本1 * 参数:dest目标地址,src源地址 * 返回:返回拷贝好的地址:如果出错或者有重叠,无

虚怀若谷 字符串拷贝函数strcpy写法_转

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->// CppReference.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" using namespace std; /* * 说明:字符串拷贝版本1 * 参数:dest目标地址,src源地址 * 返回:返回拷贝好的地址:如果出错或者有重叠,无