汇编语言中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))啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

汇编指令 DUP指令

汇编语言 实现一个数字的平方

汇编语言 pushf 和 popf指令

王爽《汇编语言》(第三版)实验9解析

汇编语言中的循环

汇编语言——实验一