MOV AX,DATAS MOV DS,AX 这两句是什么意思?

如题所述

mov ax, datas ;将伪段地址放入ax中,datas不是指令,而是伪指令,实际上是一个动态的内存地址,要想运行,必须先其地相放入到ds中,但是内存数不能放入段地址。所以
mov ds,ax ;就是将段地址装入段寄存器,最终达到了段地址装入段寄存器的目的!

在80X86中规定,内存数不可以直接装入段寄存器,所以才会有这样的一次中转!
datas不是指令字,而是伪指令,实际上你可以理解他为一个标签,将这个标签装入AX中,实际装入的就是数据段的首地址!

指令与伪指令的区别在在于,指令是属性指令集(属于CPU的),而伪指令则是属于编译软件的,扫描后由编译软件进行的操作。
温馨提示:内容为网友见解,仅供参考
无其他回答

MOV AX,DATAS MOV DS,AX 这两句是什么意思?
mov ax, datas ;将伪段地址放入ax中,datas不是指令,而是伪指令,实际上是一个动态的内存地址,要想运行,必须先其地相放入到ds中,但是内存数不能放入段地址。所以 mov ds,ax ;就是将段地址装入段寄存器,最终达到了段地址装入段寄存器的目的!在80X86中规定,内存数不可以直接装入段寄存器,所以...

汇编语言中 mov ds,ax 移动的是ax中的数据还是只是它的一个复制...
mov ds,ax 将ax中的数据赋值给ds,ax中的值不会消失。mov ax,data这句,如果是前面有assume ds:data的情况,是将地址值传给ax;若data是一个变量,如DATAS SEGMENTdata dw 12H;DATAS ENDS中的data,则是把data中的数据给ax。 本回答由提问者推荐 举报| 答案纠错 | 评论 11 0 kabbin2010 采纳率:33% 擅长...

解释下面一个汇编程序每一行代码的意思功能.
ASSUME CS:CODES,DS:DATAS ;假定各段使用的段寄存器,这句话是告诉 编译器的编译器在编译时遇见DATAS中的变量就把它会变成‘DS:变量’的形式 START: ;标号,标号简单的来说,就是在程序中做个标记,以便在编译器 的其他地方找到它所代表的地址!MOV AX,DATAS MOV DS,AX ;将DATAS的地址写入DS中...

请解释下一个汇编各行意思!
DATAS SEGMENT ;数据段定义 STRING DB 'Hello World!',13,10,'$' ;定义一个字符串 DATAS ENDS ;数据段定义结束 CODES SEGMENT ASSUME CS:CODES,DS:DATAS ;代码段,设置各段与段寄存器的;关联 START: MOV AX,DATAS MOV DS,AX ;初始化DS段寄存器 LEA DX,STRING ;显示字符串 MOV AH,9 INT 21...

解释下面一个汇编程序每一行代码的意思功能.
MOV AX,DATAS ;取段地址送入AX MOV DS,AX ;把段地址装入DS LEA DX,STRING ;LEA装入有效地址。将STRING的有效地址(或段内偏移量)送入DX,此时DX就指向了STRING所对应的一个存储单位 MOV AH,9 INT 21H ;调用21H中断的9号功能。9号功能用于显示字符串,即在屏幕上显示由DX指向的字符串(即STRING...

用汇编语言试编写程序,从键盘输入字符以回车结束,统计输入的字符个数...
MOV AX, DATAS MOV DS, AX MOV DX, OFFSET MSG1 ;提示输入. MOV AH, 09H INT 21H MOV DX, OFFSET IN_1 ;接收键盘输入. MOV AH, 0AH INT 21H MOV DX, OFFSET CRLF ;回车换行. MOV AH, 09H INT 21H MOV DX, OFFSET BUFF ;输出原字符串. MOV AH, 09H INT 21H MOV DX, OFFSET MSG2 ;提...

编写一个完整的汇编语言程序,要求在屏幕上显示出字符串“Hello,Assembly...
datasegment msgdb'Hello,Assemblylanguage','$'dataends codesegment assumeds:data,cs:code mainprocfar movax,data movds,ax leadx,msg movah,9 int21h movax,4c00h int21h mainendp codeends endmain

微机原理程序三个数比较大小
datas ends codes segment assume cs:codes,ds:datas start: mov ax,datas mov ds,ax ;ds←数据段段地址值 call input ;调用输入过程 mov si,offset buffer ;si←缓冲首偏移地址 mov al,[si] ;al←缓冲区中的第一个数码 mov bl,[si+1] ;bl←缓冲区中的第二个数码...

懂汇编语言的高手进,谢谢~在线等答案。急~
;你的源码:个别地方有问题,已经改正了。; 显示的效果在最后,特殊字符用S表示出来了。;DATASSEGMENT DB128DUP(0)DATASENDS CODESSEGMENT ASSUMECS:CODES,DS:DATAS START:MOVAX,DATAS;MOVDS,AX MOVBH,16;一共显示16行 MOVDL,00H;从字符00H开始显示 MOVCX,8;一行显示8个字符 ;***此段作修改 ...

DATAS SEGMENT是什么
在程序执行过程中,通过ASSUME伪指令,CS:CODES和DS:DATAS被指定为代码段和数据段的默认段寄存器。程序从START指令开始,首先使用MOV AX,DATAS获取数据段地址,然后通过MOV DS,AX将地址加载到DS寄存器中,确保数据段的正确引用。使用LEA DX,STRING指令将STRING的地址送入DX,使其指向要显示的字符串。接...

相似回答