汇编语言中DA1 DB 04H DUP(3 DUP(2),2 DUP(3))啥意思?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编语言中DA1 DB 04H DUP(3 DUP(2),2 DUP(3))啥意思?相关的知识,希望对你有一定的参考价值。
DUP(3 DUP (2), 2 DUP (3))这是个DUP的 "嵌套“。
1、DUP指令的用法是: count DUP (表达式,表达式,表达式,...)。
2、dup它有多种意义,包括Linux c 函数、C语言函数DUP、汇编指令、化学物质DUP。
3、由dup返回的新文件描述符一定是当前可用文件描述中的最小数值。用dup2则可以用fd2参数指定新的描述符数值。
4、如果fd2已经打开,则先关闭。若fd1=fd2,则dup2返回fd2,而不关闭它。通常使用这两个系统调用来重定向一个打开的文件描述符。
参考技术A 相当于定义一些数据:DA1是名称,DB是定义字节,这个语句可以详细解释为:重复4遍
2,2,2,3,3.
即为
DA1
DB
2,2,2,3,3,2,2,2,3,3,2,2,2,3,3,2,2,2,3,3;
8086汇编读入字符串并复制(不使用 movsb 指令)
图 1 程序运行示意
getstr macro str
mov ah,0ah
lea dx,str
int 21h
endm
printstr macro str
mov ah,09h
lea dx,str
int 21h
endm
stack segment stack
db 512 dup(?)
stack ends
data segment
str1 db 80,80 dup('$')
str2 db 80,80 dup('$')
msg1 db 10,13,'enter the string :$'
msg2 db 10,13,'the copied string is :$'
data ends
code segment
assume cs:code,ds:data
start:
mov ax, stack
mov ss, ax
mov ax,data
mov ds,ax
printstr msg1
getstr str1
lea si,str1+2
lea di,str2+2
mov cl,str1+1 ;for storing the length of the string
mov ch,00h
lab1:
mov al,ds:byte ptr[si]
mov ds:byte ptr[di],al
inc di
inc si ;for going to the end of the string
loop lab1
printstr msg2
printstr str2+2
mov ax,4c00h
int 21h
code ends
end start
以上是关于汇编语言中DA1 DB 04H DUP(3 DUP(2),2 DUP(3))啥意思?的主要内容,如果未能解决你的问题,请参考以下文章