汇编:每一句前的mov ax,data是什么意思? 汇编中,MOV AX,DATA的DATA 是什么意思,怎么用

\u6c47\u7f16\u8bed\u8a00\u4e2d\u5f00\u5934\u7684mov ax.data\uff0cmov ds \uff0cax\u8fd9\u53e5\u6709\u4ec0\u4e48\u4f5c\u7528\u5462\uff1f

\u5c06\u6570\u636e\u6bb5\u7684\u6570\u636e\u79fb\u5230DS\u5bc4\u5b58\u5668\u4e2d\uff0c\u56e0\u4e3a\u65e0\u6cd5\u76f4\u63a5\u6570\u636e\u4ece\u5185\u5b58\u79fb\u5230DS\uff0c\u53ea\u80fd\u4ece\u5bc4\u5b58\u5668\u79fb\u5230DS\uff0c\u6240\u4ee5\u9700\u8981\u5148\u628a\u6570\u636e\u79fb\u5230AX\u5bc4\u5b58\u5668\uff0c\u7136\u540e\u518d\u79fb\u5230Ds\u5bc4\u5b58\u5668\u3002
\u56e0\u4e3a\u4f60\u4e0b\u9762\u8981\u7528DATA\uff0c\u6240\u4ee5\u8fd9\u6837\u505a\u662f\u4e3a\u4e86\u4fdd\u5b58\u6570\u636e\u6bb5DATA\u4e0a\u9762\u539f\u6709\u7684\u6570\u636e\u3002

DATA \u662f\u6bb5\u540d\uff0c\u5c31\u662f\u901a\u8fc7assume \u6765\u544a\u8bc9\u6c47\u7f16\u7a0b\u5e8f\u5f53\u524d\u4f7f\u7528\u7684\u5404\u6bb5\u7684\u6bb5\u540d\uff0c\u6bd4\u5982
assume cs\uff1acode\uff0cds\uff1adata
\u610f\u601d\u5c31\u662fcode\u662f\u4ee3\u8868\u4ee3\u7801\u6bb5cs\uff0cdata\u4ee3\u8868\u6570\u636e\u6bb5ds

这句话的作用就是使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

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



将DATA值赋给AX有什么用? data赋给AX只是起一个过渡作用,实际上是为了将值赋给DS
data具体指什么,是多少值? DATA指DATA做的地址,应该是随机分配的
将AX的值赋给DS有什么用?   只是一个过渡作用
AX值是多少?我又没有指定给他。。。   过渡作用,目的是将DATA段的数据给DS引用,告诉DS那些数据存放在哪里,之后DS会自动到那个地方取。。

不要孤立地看这个指令.
MOV AX,DATA
MOV DS,AX
这两句的作用就是使DS的值为DATA.其中DATA为你定义的数据段,它的作用就是把数据段寄存器DS的值赋为DATA,就是让数据段指向正确的位置.

将数据段的数据移到DS寄存器中,因为无法直接数据从内存移到DS,只能从寄存器移到DS,所以需要先把数据移到AX寄存器,然后再移到Ds寄存器。
因为你下面要用DATA,所以这样做是为了保存数据段DATA上面原有的数据。

每个用户所编写的汇编主程序对DOS来说都是一个远过程的调用。而系统会自动在内存主程序开始的地方添加一个100H大小的程序段前缀(简称PSP),其中包含用户可执行文件(.EXE)的若干信息。其中有对DS的赋值指令。这100H的PSP中的指令都是交给CPU在执行你所编写的程序之前执行的,但并不对外可见。而ASSUME又只是伪指令,并没有将DATA所代表的数据段收地址放入DS中,所以只能让用户在每个程序开头手动放进去,因而在程序一开始的5句标准程序前奏之中有了这两句。

扩展阅读:e天堂switch2网站 ... ax bx cx dx ... ev天堂switch2官网入口 ... mov ax cs ... switch国产joycon ... mov bx ax ... e天堂switch网页版tv ... 本色switch ... mov ax ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网