㈠ 汇编语言中的存储器是什么
主要用来存放程序和数据,这里指的是内存储器或主存储器,分为:
随机存储器(RAM)
只读存储器(ROM)
存储器由许多存储单元组成,每个单元的位数可以是1位、4位、8位、16位等,其中8位为一个字节(Byte)。
存储器的容量是指存储器所能存储的二进制位数,通常用能存储的字节数来衡量,单位有KB、MB、GB等。
存储器中每个存储单元都有一个编号,称为存储地址,简称地址。微处理器就是按照存储单元的地址来访问内存的。
对存储器的访问操作有读操作和写操作,用于实现从存储器中读出信息和把信息写入存储器。
每当需访问存储器时:
(1)由微处理器给出地址;
(2)通过地址译码器选择相应的存储单元;
(3)微处理器发出读或写控制信号,从而从指定地址的单元读出数据或把数据写入指定地址的存储单元。
㈡ 汇编语言中 cs, ds,ss 的区别
一、寄存器位置不同:
1、CS:代码段寄存器;
2、DS:数据段寄存器;
3、SS:堆栈段寄存器。
二、存放位置不同:
1、代码段寄存器CS:存放当前正在运行的程序代码所在段的段基值。
2、数据段寄存器DS:存放数据段的段基值。
3、堆栈段寄存器SS:存放堆栈段的段基值。
三、段地址不同:
1、cs代码段地址,联合ip作为cpu指向当前正在执行的那条指令所使用,不能随意修改它。
2、ss堆栈度段地址问联合sp定义一个答堆栈,一旦你确定了堆栈地址,ss也不能随便改变了。
3、ds数据段地址定义一个数据段。
(2)汇编语言中存储器的代码是啥扩展阅读:
汇编语言的特点是能被计算机直接识别和执行,使用它进行编程可以减少占用空间、提高运行速度,并能直接对硬件实施控制。
在需要实时控制的时候,有着不可替代的重要地位,但汇编语言在编程和理解时要复杂、困难一些,尤其是在进行数据处理或是逻辑运算时更加凸显出其劣势。
高级语言是面向使用者的语言,能更准确地被程序员所理解,它的表达能力强,功能多,编程效率高,上手速度快,自动化程度高,因而更受欢迎。
在大部分软件开发中,使用者都采用高级语言编程,以提高编程效率。但在要求存储空间小,执行速度快,需直接对硬件进行控制的场合,则应用汇编语言编程,以达到优化程序速度的目的。
网络-汇编语言 (面向机器的程序设计语言)
㈢ 汇编语言寄存器存储器问题
通用寄存器8个:AX BX CX DX SP BP DI SI
加方括号就是存储器,存储器之间不能传递数据
REG寄存器
MEM储存器
SREG状态寄存器
立即数有宽度,但要看怎么用:mov ax,12h就是16位的,mov al,12h就是8位的,但不能mov al,0012h
㈣ 存储器在汇编语言中的表示是什么啊
我告诉你:
mov cs, ax是错误的, 因为mov指令不能用于设置cs,ip的值.
修改cs,ip的内容要用jmp命令.
同时修改, jmp 段地址: 偏移地址, 如 jmp 2BE4H: 3 修改后CS=2BE4 IP =0003H
难道不看书吗? 你学intel格式,我学习at&t格式。嘎嘎
㈤ 汇编语言的CS是什么意思
汇编语言cs:是代码段寄存器,ds是数据段寄存器。
段代码CS:存放当前正在运行的程序代码所在段的段基值,表示当前使用的指令代码可以从该段寄存器指定的存储器段中取得,相应的偏移值则由IP提供。
cs:[ip]一起决定了下一条指令的地址,在调用的时候,CALL指令将保存返回地址,调用结束时,RET指令将恢复返回地址。
如果是段内跳转,则只需要修改IP,如果是远跳转,则需CS和IP同时修改和恢复。
CS 代码段,或代码选择器。同IP寄存器(稍后介绍)一同指向当前正在执行的那个地址。处理器执行时从这个寄存器指向的段(实模式)或内存(保护模式)中获取指令。除了跳转或其他分支指令之外,无法修改这个寄存器的内容。
㈥ 汇编语言中 cs、ds、ss的区别是什么
CS:代码段寄存器;DS:数据段寄存器;SS:堆栈段寄存器;当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器 CS,DS,SS 来指向这些起始位置。通常是将DS固定,而根据需要修改CS。cs 代码段地址,联合ip作为cpu指向当前正在执行的那条指令所使用,你一般不能随意修改它ss 堆栈段地址 联合sp定义一个堆栈,一旦你确定了堆栈地址,ss也不能随便改变了ds 数据段地址,定义一个数据段如果你是新手的话,有需要的时候,你可以用ds和es,随着更加深入的学习你会了解具体怎么用的。
㈦ 汇编语言的几个简单指令,并附上中文解释
常用汇编指令: MOV 指令为双操作数指令,两个操作数中必须有一个是寄存器. MOV DST , SRC // Byte / Word 执行操作: dst = src
1.目的数可以是通用寄存器, 存储单元和段寄存器(但不允许用CS段寄存器). 2.立即数不能直接送段寄存器
3.不允许在两个存储单元直接传送数据 4.不允许在两个段寄存器间直接传送信息
PUSH 入栈指令及POP出栈指令: 堆栈操作是以"后进先出"的方式进行数据操作.
PUSH SRC //Word
入栈的操作数除不允许用立即数外,可以为通用寄存器,段寄存器(全部)和存储器. 入栈时高位字节先入栈,低位字节后入栈. POP DST //Word
出栈操作数除不允许用立即数和CS段寄存器外, 可以为通用寄存器,段寄存器和存储
器. 执行POP SS指令后,堆栈区在存储区的位置要改变.
执行POP SP 指令后,栈顶的位置要改变.
XCHG(eXCHanG)交换
指令: 将两操作数值交换
.
XCHG OPR1, OPR2 //Byte/Word
执行操作: Tmp=OPR1 OPR1=OPR2 OPR2=Tmp 1.必须有一个操作数是在寄存器中 2.不能与段寄存器交换数据
3.存储器与存储器之间不能交换数据.
XLAT(TRANSLATE)换码指令: 把一种代码转换为另一种代码. XLAT (OPR 可选) //Byte 执行操作: AL=(BX+AL)
指令执行时只使用预先已存入BX中的表格首地址,执行后,AL中内容则是所要转换的代码.
LEA(Load Effective Address) 有效地址传送寄存器指令
LEA REG , SRC //指令把源操作数SRC的有效地址送到指定的寄存器中. 执行操作: REG = EAsrc
注: SRC只能是各种寻址方式的存储器操作数,REG只能是16位寄存器 MOV BX , OFFSET OPER_ONE 等价于 LEA BX , OPER_ONE
MOV SP , [BX] //将BX间接寻址的相继的二个存储单元的内容送入SP中 LEA SP , [BX] //将BX的内容作为存储器有效地址送入SP中 LDS(Load DS with pointer)指针送寄存器和DS指令 LDS REG , SRC //常指定SI寄存器。
执行操作: REG=(SRC), DS=(SRC+2) //将SRC指出的前二个存储单元的内容送入指令中指定的寄存器中,后二个存储单元送入DS段寄存器中。
㈧ 请问汇编语言中的存储器操作数是什么
指令的操作数有四种:
1、立即数,即常数,直接在汇编指令中给出的二进制、十进制、8进制、16进制
或者ascii码字符等
2、寄存器,操作数存放在寄存器中。
3、存储器,操作数放在内存单元中,可以是字节、字、双字等等。
4、端口,操作数来自外设端口。通过in、out指令操作。
㈨ 汇编语言中,指令MOVC A,@A+PC 与指令MOVC A,@A+DPTR的区别是什么 在什么情况下使用MOVC A,@A+PC
MOVC A,@A+PC是读取地址为A+PC的存储单元里面的内容。
MOVC A,@A+DPTR是读取地址为A+DPTR存储单元的内容。
PC和DPTR的内容不同时,就有区别,还有DPTR可以用指令直接改变其中的值。
这两条都是查表指令,MOVC A,@A+PC,只能给累加器A赋值,所以只能查这条指令所在地址以后256字节范围内的代码或常数。而MOVC A,@A+DPTR,可以给DPTR赋给任何一个16位的地址值,所以查表范围可达整个程序存储器64K字节空间的代码或常数。
语言组成
由于汇编指令系统庞大,因而需构建指令系统体系,其指令数量庞大,格式复杂,可记忆性差等。指令中最难的是指令所支持的寻址方式,其实质就是指令中操作数如何获取。对于处理器而言,就是如何找到他所需的数据。
但对于计算机底层的汇编语言而言,这种寻址方式将涉及大量的计算存储格式,与 复杂的存储管理方式紧密相关,因而难以理解。最后,汇编指令还关系到如何影响标志位,但处理器标志位非常复杂,因而对其机制掌握就比较困难。