汇编:每一句前的mov ax,data是什么意思?

请问一下,每个汇编程序前面都有几句这样的:BEGIN:MOVAX,DATAMOVDS,AX。。。。这两句有什么用?将DATA值赋给AX有什么用?data具体指什么,是多少... 请问一下,每个汇编程序前面都有几句这样的:
BEGIN: MOV AX,DATA
MOV DS,AX
    。。。。
这两句有什么用?
将DATA值赋给AX有什么用?
data具体指什么,是多少值?
将AX的值赋给DS有什么用?
AX值是多少?我又没有指定给他。。。
展开
 我来答
无和有
高粉答主

2019-07-02 · 自由是我的最大追求,无中生有
无和有
采纳数:65 获赞数:45777

向TA提问 私信TA
展开全部

这句话的作用就是使DS的值为DATA.其中DATA为你定义的数据段,它的作用就是把数据段寄存器DS的值赋为DATA,就是让数据段指向正确的位置

data赋给AX只是起一个过渡作用,实际上是为了将值赋给DS

DATA指DATA做的地址,应该是随机分配的

将AX的值赋给DS是一个过渡作用

扩展资料

语言组成

由于汇编指令系统庞大,因而需构建指令系统体系,其指令数量庞大,格式复杂,可记忆性差等。指令中最难的是指令所支持的寻址方式,其实质就是指令中操作数如何获取。对于处理器而言,就是如何找到他所需的数据。

但对于计算机底层的汇编语言而言,这种寻址方式将涉及大量的计算存储格式,与 复杂的存储管理方式紧密相关,因而难以理解。最后,汇编指令还关系到如何影响标志位,但处理器标志位非常复杂,因而对其机制掌握就比较困难。 

传送指令

包括通用数据传送指令MOV、条件传送指令CMOVcc、堆栈操作指令PUSH/PUSHA/PUSHAD/POP/POPA/POPAD、交换指令XCHG/XLAT/BSWAP、地址或段描述符选择子传送指令LEA/LDS/LES/LFS/LGS/LSS等。 

逻辑运算

这部分指令用于执行算术和逻辑运算,包括加法指令ADD/ADC、减法指令SUB/SBB、加一指令INC、减一指令DEC

比较操作指令CMP、乘法指令MUL/IMUL、除法指令DIV/IDIV、符号扩展指令CBW/CWDE/CDQE、十进制调整指令DAA/DAS/AAA/AAS、逻辑运算指令NOT/AND/OR/XOR/TEST等。 

移位指令

这部分指令用于将寄存器或内存操作数移动指定的次数。包括逻辑左移指令SHL、逻辑右移指令SHR、算术左移指令SAL、算术右移指令SAR、循环左移指令ROL、循环右移指令ROR等。

位操作

这部分指令包括位测试指令BT、位测试并置位指令BTS、位测试并复位指令BTR、位测试并取反指令BTC、位向前扫描指令BSF、位向后扫描指令BSR等。 

控制转移

这部分包括无条件转移指令JMP、条件转移指令Jcc/JCXZ、循环指令LOOP/LOOPE/LOOPNE、过程调用指令CALL、子过程返回指令RET、中断指令INTn、INT3、INTO、IRET等。

串操作

这部分指令用于对数据串进行操作,包括串传送指令MOVS、串比较指令CMPS、串扫描指令SCANS、串加载指令LODS、串保存指令STOS,这些指令可以有选择地使用REP/REPE/REPZ/REPNE和REPNZ的前缀以连续操作。

输入输出

这部分指令用于同外围设备交换数据,包括端口输入指令IN/INS、端口输出指令OUT/OUTS

参考资料来源:百度百科-汇编语言

匿名用户
推荐于2018-02-23
展开全部
将DATA值赋给AX有什么用? data赋给AX只是起一个过渡作用,实际上是为了将值赋给DS
data具体指什么,是多少值? DATA指DATA做的地址,应该是随机分配的
将AX的值赋给DS有什么用?   只是一个过渡作用
AX值是多少?我又没有指定给他。。。   过渡作用,目的是将DATA段的数据给DS引用,告诉DS那些数据存放在哪里,之后DS会自动到那个地方取。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-07
展开全部
不要孤立地看这个指令.
MOV AX,DATA
MOV DS,AX
这两句的作用就是使DS的值为DATA.其中DATA为你定义的数据段,它的作用就是把数据段寄存器DS的值赋为DATA,就是让数据段指向正确的位置.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-07
展开全部
将数据段的数据移到DS寄存器中,因为无法直接数据从内存移到DS,只能从寄存器移到DS,所以需要先把数据移到AX寄存器,然后再移到Ds寄存器。
因为你下面要用DATA,所以这样做是为了保存数据段DATA上面原有的数据。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱承泽0cb
2017-01-12 · TA获得超过228个赞
知道答主
回答量:11
采纳率:0%
帮助的人:1.2万
展开全部
每个用户所编写的汇编主程序对DOS来说都是一个远过程的调用。而系统会自动在内存主程序开始的地方添加一个100H大小的程序段前缀(简称PSP),其中包含用户可执行文件(.EXE)的若干信息。其中有对DS的赋值指令。这100H的PSP中的指令都是交给CPU在执行你所编写的程序之前执行的,但并不对外可见。而ASSUME又只是伪指令,并没有将DATA所代表的数据段收地址放入DS中,所以只能让用户在每个程序开头手动放进去,因而在程序一开始的5句标准程序前奏之中有了这两句。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式