汇编语言段定义

原文链接 —— SevenOne’Blog

段定义三步走

段定义

  1. 关键字:segment(开始) ends(结束)

  2. 段名:不得超过八个字符。一般情况下,

    • code 表示代码段。
    • data 表示数据段
  3. 语法

    段名 segment
    
    段名 ends
    

段关联

  1. 关键字:assume

  2. 类型:CS(代码段)、DS(数据段)、SS(堆栈段)、ES(附加段)

  3. 语法:

    assume 类型:段名
    
  4. 例:定义一个代码段 code,定义一个数据段 data

    code segment
    	assume cs:code,ds:data
    code ends
    
    data segment
    
    data ends
    

段传送

  1. 传送是将段中的数据传到指定的段寄存器中。例如,讲 data 中的数据传到 DS 数据段中,在关联的时候并没有真正的传递数据。

  2. 代码段在定义时不需要段传送,其他段都需要手动传送。

  3. 通过 mov 不能将段直接传递给段寄存器,可以间接行传送。

    ……
    mov ax,data
    mov ds,ax
    ……
    

    这段代码表示,现将 data 数据段存到 ax 中,再将 ax 中的数据存到 ds 中。

数据段

开辟空间的伪指令

  1. db:开辟一个字节空间。
  2. dw:开辟一个字空间。(两个字节)
  3. dup:循环存字符

存储数据

  1. 存储 10 进制数据时,直接写入。
  2. 存储字符数据时用单引号扩起来,最终在 debug 模式下现实的是该字符 ASCII 码16进制表现形式。

语法格式

  1. 无地址符号

  2. 有地址符号

代码演示

  1. 使用 db 定义 5 个奇数,将第一个数存到 AH 中,最后一个数存到 AL 中。

    最终,AX=0109,恰好是 AH 与 AL 的拼接。

  2. 使用 dw 定义 5 个奇数,存入 AX 中。

  3. 利用 dup 开辟三个单字节空间

    data segment
        str db 3 dup(5)
    data ends
    code segment
        assume cs:code,ds:data
        main:
            mov ax,data
            mov ds,ax
            
        edit:
            mov ah,4ch
            int 21h
    code ends
        end main
    
  • 13
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
汇编语言中,数据用来定义数据。一个数据可以包含多个数据项,每个数据项都有一个标识符和一个数据类型。数据定义通常包括以下步骤: 1. 声明数据的开始和结束:使用关键字"data segment"来声明数据的开始,在数据定义完之后使用关键字"data ends"来声明数据的结束。 2. 定义数据项:在数据内部,可以使用不同的语句来定义不同类型的数据项。常见的数据类型包括字节、字、双字等。例如,使用关键字"db"可以定义一个字节类型的数据项。 3. 使用数据:在代码中,可以使用关键字"assume"来将数据与代码进行关联,以便在代码中访问数据定义数据项。 下面是一个示例代码,其中定义了一个数据并声明了一个字节类型的数据项: ``` data segment str db 3 dup(5) data ends ``` 在这个示例中,"str"是一个标识符,"db"表示该数据项是一个字节类型的数据项,"3 dup(5)"表示重复3次的字节数据,值为5。这样就定义了一个包含3个字节数据数据项"str"。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [汇编语言定义](https://blog.csdn.net/Mr_peng13/article/details/125049123)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [汇编学习教程:定义不同的](https://blog.csdn.net/qq_34149335/article/details/124110122)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iGma_e

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值