assembly - 在 Assembly (.exe) 中将 2 个字符串组合成一个较长的字符串 - 此代码如何工作?
问题描述
我在汇编程序中收到了一个将 2 个字符串加在一起的代码。不幸的是,我不明白这个程序从第 21 行到第 42 行是如何工作的。有人可以描述这个程序在这个领域是如何工作的吗?谢谢!
.MODEL SMALL
Data SEGMENT
String1 DB "It is our first string ",13,10,'$'
LENGTH_STRING1 EQU 23
String2 DB "It is second string",13,10,'$'
LENGTH_STRING2 EQU 25
String3 DB LENGTH_STRING1 + LENGTH_STRING2 DUP (?), 13, 10, '$'
Data ENDS
Code SEGMENT
ASSUME CS:Code, DS:Data, SS:Bundle
Start:
mov ax, SEG Data
mov ds, ax
21 mov cx, LENGTH_STRING1
22 mov si, OFFSET String1
23 mov di, OFFSET String3
24 LOOP1:
25 mov dl, [si]
26 mov [di], dl
27 inc si
28 inc di
29 loop LOOP1
30
31 mov cx, LENGTH_STRING2
32 mov si, OFFSET String2
33 LOOP2:
34 mov dl, [si]
35 mov [di], dl
36 inc si
37 inc di
38 loop LOOP2
39
40 mov ah, 09h
41 mov dx, OFFSET String3
42 int 21h
mov ax, 4C00h
int 21h
Code ENDS
Bundle SEGMENT STACK
DB 100h DUP (?)
Bundle ENDS
END Start
解决方案
推荐阅读
- java - 如何使用spring批处理在postgresql中执行存储过程?
- python - 如何使用嵌套字典中的子列创建数据框(多索引)?
- python - Discord.py 为用户添加角色
- c# - Spotify api 检索到的访问令牌不起作用
- laravel-5 - 如何在laravel中修复“试图获取非对象的属性'id'”?
- marklogic - 如何为 webdav 连接到 marklogic 创建只读用户
- css - 无法使用 Less mixin 创建动态类
- javascript - 我可以让 src 属性从服务器或调整服务器获取 base64 数据吗?
- excel - 是否有关于如何通过 Excel 中的 VBA 驱动 Office“公式编辑器”的文档?
- android - Scarlet Web 套接字库连接失败