腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(1034)
视频
沙龙
4
回答
8086-
为什么
我们
不
能将
立即
数据
移入
段
寄存器
?
assembly
、
x86
、
x86-16
、
cpu-registers
、
instruction-set
在8086汇编程序设计中,
我们
只能通过以下方式将
数据
加载到
段
寄存器
中:首先将
数据
加载到通用
寄存器
中,然后必须将其从通用
寄存器
移到
段
寄存器
中。
为什么
我们
不能直接加载呢?不被允许有什么特殊的原因吗?
浏览 160
提问于2013-09-29
得票数 22
回答已采纳
1
回答
Linux分段
linux
、
memory-management
、
linux-kernel
、
kernel
、
cpu-registers
例如,当CPL等于3(用户模式)时,ds
寄存器
必须包含用户
数据
段
的分段选择器,但是当CPL等于0时,ds
寄存器
必须包含内核
数据
段
的分段选择器。 ss
寄存器
也出现了类似的情况。当CPL为3时,它必须引用用户
数据
段
中的用户模式堆栈,当CPL为0时,它必须引用内核
数据
段
内的内核模式堆栈。当从用户模式切换到内核模式时,Linux总是确保ss
寄存器
包含内核
数据
段</
浏览 0
提问于2017-08-24
得票数 2
回答已采纳
3
回答
汇编语言
寄存器
assembly
[si]add ax, [si]mov [si], axint 21 这段代码将3000:200和3000:202中的2个内存
段
相加,并将结果放在3000:202上,我不理解ds和si之间的联系,因为我无法解释
为什么
要移动ds,ax?我一般不理解
寄存器
之间的联系。我知道他们代表什么但是..。我不知道一些帮助会是非常有用的谢谢
浏览 1
提问于2012-01-03
得票数 0
5
回答
汇编8086程序
assembly
、
x86-16
我理解它的一般工作原理,但我有几个问题:MOV AX,
数据
为什么
我们
不
直接说:MOV DX,DATA 最后,有人能推荐一本好书来学习装配吗
浏览 7
提问于2011-03-20
得票数 2
2
回答
LEA和几条指令是如何工作的?
assembly
、
x86
我不完全理解前两行的意思,以及后两行的区别。LES DI,[BX]MOV DI,5000h
浏览 1
提问于2013-08-21
得票数 4
1
回答
如何在
寄存器
中存储字符串?有没有可能?组装x8086
assembly
、
x86-16
[2]Conversion$" 有没有办法只使用
寄存器
来显示这个字符串
浏览 1
提问于2021-05-21
得票数 0
5
回答
使用64位整数(长)比少位整数快吗?
c
、
performance
、
optimization
我在杰森·格雷戈里的“游戏引擎架构”一书中读到: “可以访问比机器
数据
总线宽度更窄的
数据
项,但通常比访问宽度与
数据
总线宽度相匹配的
数据
项更昂贵。例如,当在64位机器上读取16位值时,仍必须从内存中读取完整的64位
数据
。然后,需要屏蔽所需的16位字
段
,并可
能将
其移到目标
寄存器
中。”如果是这样的话,如果
我们
可以得到更大的值(当需要的时候)和更快的长长度代码,
为什么
还要继续使用shorts和int呢?
浏览 0
提问于2020-06-06
得票数 7
回答已采纳
3
回答
如果
不
设置自动变量,它
为什么
会包含垃圾?
c
、
garbage
在“C编程语言”第三版和第32页中,我看到了那些让我感到困惑的行: #include <stdio.h> int a = 5; printf("\n\t %d", a);
浏览 2
提问于2014-08-21
得票数 3
回答已采纳
2
回答
不同的
段
可能会一起崩溃
assembly
、
x86-16
当
我们
编码时,然后
我们
给不同的
段
寄存器
相同的值,在这种情况下,两个不同的
段
可能会彼此混乱,可能会出现问题。例如,在以下给定条件下。MOV AX, CSASSUME SS: DOSGROUP 如上所述,在第1行中,
我们
将CS移动到AX。紧接着
我们
就用斧头砍向党卫军。这意味着在这一点上,CS和SS
寄存器
包含相同的值或相同的内存位置,这不是真的,当
我们
进一步编码时,CS的内容将与内容SS一起折叠。
浏览 0
提问于2019-06-17
得票数 0
3
回答
MOV AX,CS和MOV DS,AX的概念
assembly
、
x86-16
、
real-mode
、
memory-segmentation
ORG 1000H MOV DS,AX如何在这个程序中实现?
为什么
整个
段
被移动到另一个片段中?LASTLAST: INT 21H(编者注:.com程序在偏移量100h处加载,所有
段
寄存器
设置相等
浏览 4
提问于2011-03-19
得票数 5
回答已采纳
2
回答
8086
段
寄存器
的值是多少?
assembly
、
x86
、
x86-16
我读到地址总线是20位宽的,这意味着地址空间是1MB,这个空间被分成几个
段
。 MOV [BX], CX 这是否意味着每次我在MOV指令中引用一个地址时,都应该根据
数据
段
的起始地址来估计地址?(正如他所写的,目的地是
数据
段
r
浏览 0
提问于2013-09-16
得票数 2
回答已采纳
3
回答
为什么
不
建议在C中使用指针进行数组访问
c
、
arrays
、
pointers
、
pointer-arithmetic
int *)malloc(sizeof(int)*50); p_array[i] = 0;使用像下面的代码这样的指针算法做它有什么区别(以及
为什么
不
推荐它
浏览 7
提问于2020-01-11
得票数 5
回答已采纳
1
回答
缓冲区溢出和
段
buffer-overflow
、
assembly
我知道,通过覆盖易受攻击程序中的返回地址,
我们
可以更改下一条指令的偏移量,并使其指向注入的缓冲区。但是这个缓冲区在堆栈
段
中,偏移量(ip)是为“代码
段
”计算的,那么如何让程序在
数据
段
中执行代码呢?
浏览 0
提问于2015-03-15
得票数 2
回答已采纳
1
回答
在编译期间注册使用情况
cpu
、
cpu-registers
、
nios
我发现编译器使用通用
寄存器
r1-r23和r26-r28来存储局部变量,但它们还有其他用途吗?另外,这个
寄存器
属于哪个内存(缓存/RAM)?最后,
寄存器
r26中的全局指针gp指向什么?
浏览 1
提问于2019-01-26
得票数 0
回答已采纳
1
回答
MIPS流水线转发:如何转发到第二条后续指令?
mips
、
pipeline
、
forwarding
、
cpu-hazard
我想将
数据
从指令1转发到指令3。问题是,我只能从指令1的EX/MEM
寄存器
转发
数据
。所以
我们
有:2: IF ID EX MEM WB我想从1的EX/MEM转发到3的我看不出这会有任何帮助,因为这对我来说及时转发
数据
已经没有意义了。 答案:谢谢你的帮助
浏览 6
提问于2021-11-24
得票数 0
6
回答
"FS"/"GS“注册的目的是什么?
assembly
、
x86
、
cpu-architecture
、
cpu-registers
、
memory-segmentation
因此,我知道下列登记册及其用途: 注意:我是,而不是,询问任何特定的操作系统--如果有什么需要的话,我要问的是它们打算用于什么用途。
浏览 20
提问于2012-05-30
得票数 129
回答已采纳
2
回答
大于最大整数
寄存器
的RISC访问地址
assembly
、
cpu-architecture
、
memory-address
、
addressing-mode
、
risc
假设您正在运行一个32位RISC系统。您将使用什么指令来访问64位内存地址?1a) JMP1c) hiAddress假设ALU为32位且具有进位标志。
浏览 52
提问于2018-06-08
得票数 1
回答已采纳
4
回答
x86指令"call dword ptr ds:[00923030h]“的含义是什么?
assembly
、
x86
、
addressing-mode
下面的x86汇编指令是做什么的?我怀疑这是一个间接调用,但它到底是如何计算调用地址的呢?
浏览 1
提问于2009-02-05
得票数 10
3
回答
全局描述符表
windows
、
operating-system
、
x86
、
intel
据我所知,有专门的
寄存器
保存全局描述符表(GDT)。GDT包含空描述符、本地描述符表、TSS和分段描述符。而且,几乎所有操作系统(OS)都有一个GDT,它在启动时加载,不能更改(可能!)
段
描述符是否与代码
段
(ASM: CS)、
数据
段
(ASM: DS)、如果是这样的话,有多少存储在GDT中(是否只有一个CS,一个DS,.)?
浏览 5
提问于2012-10-03
得票数 9
回答已采纳
1
回答
为什么
在STM32F103CB上的通用异步收发器(DR
寄存器
写入)和(实际显示的
数据
)之间会有延迟?
timer
、
uart
、
stm32f1
我很好奇上面提到的标题之间的延迟时间,我在将
数据
写入UART->DR时切换了IO,延迟时间从3微秒到10微秒不等 int main(void) /* initial code generated= (uint8_t)(Data & (uint8_t)0x00FF); // send data (write DR)我不确定时间抖动是否与波特率9600(104微秒/比特)有关,
数据
不是应该在DR
寄存器
写入时
立即
显示吗?
为什么
浏览 4
提问于2020-09-24
得票数 0
点击加载更多
热门
标签
更多标签
云服务器
ICP备案
对象存储
即时通信 IM
实时音视频
活动推荐
运营活动
广告
关闭
领券