查看: 107|回复: 0

[教程] 汇编语言段定义的使用

[复制链接]

3

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-7-18
发表于 2024-3-26 11:38:56 | 显示全部楼层 |阅读模式

段定义三步走

段定义

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

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

  • code 表示代码段。
  • data 表示数据段

语法

段名 segment

段名 ends

段关联

关键字:assume

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

语法:

assume 类型:段名

例:定义一个代码段 code,定义一个数据段 data

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

data segment

data ends

段传送

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

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

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

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

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

数据段

开辟空间的伪指令

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

存储数据

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

语法格式

无地址符号

有地址符号

代码演示

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

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

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

利用 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

到此这篇关于汇编语言段定义的使用的文章就介绍到这了,更多相关汇编语言段定义内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区! 

您可能感兴趣的文章:
  • 汇编基础教程段的定义应用详解
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部