ZKX's LAB

汇编判断题,大大们帮帮忙啊。 不能给段寄存器进行立即数方式

2020-07-23知识10

汇编~~~立即数不能直接传入段寄存器,为什么?? 因为没有这样的指令,这就是根本的限制 没有指令.只能通过累加器A来转 没办法直接把立即数放到段寄存器中。段寄存器用于控制程序段的访问。要修改段寄存器,那么可以通过AX。8086中为什么不能将立即数直接传送到段寄存器 是Intel公司设计的8086,它们就是这样设计的,并没有公布理由。使用者,按照它们制定的规则,编写程序,就可以了。。? 2019SOGOU.COM 京ICP证050897号汇编语言 为什么不能用立即数给段地址赋值 用通过寄存器间接赋值呢(应该有特殊的原因,是为什么呢) 你问的这个问题,反正书上也没有说,我也不太肯定。只是猜想,猜想而已。反正立即数就不能给地址赋值,这个是肯定的。原因:我感觉和寄存器的结构有关吧,在我用汇编的1年,我感觉段寄存一般都是配合偏移地址使用的,要么就是保存地址,间接的寻址的。保存立即数会完全的污染段寄存器的,我个人感觉,因为那样设计也不好,要是乱给段寄存器赋值,比如:cs,ds,bp,sp,那岂不是CPU大乱啦。一般都是保存地址的。为什么立即数不能直接送段寄存器? 由于立即数直接写入段寄存器这样的指令,被翻译成机器码之后将占用更多的字节,在事先规定的指令长度范围内无法存贮下这么多的内容,因此改由先写入通用寄存器,再由通用寄存器写入段寄存器的办法代替。立即数实际上是相当占地方的。汇编判断题,大大们帮帮忙啊。 1.8086/8088标志寄存器共有16位,每一位都有含义。错误2.立即数寻址方式不能用于目的操作数字段。错误3.在汇编语言源程序中,伪指令语句必须放在数据段中。错误4.MOV指令要影响标志位。错误5.SP的内容可以不指向堆栈的栈顶。正确6.指令SHR AX,4可以将AX的内容逻辑右移4位。正确7.MOV AX,[BP]的源操作数的物理地址为16*(DS)+(BP).正确8.CF位可以用来表示无符号数的溢出。错误9.逻辑右移1位和算术右移1位的效果是一样的错误10.指令MOVAL,255是合法的数据传送指令正确11.指令TEST AL,0执行后AL的内容一定是全零。错误12.为了使执行串操作令时串地址按增量方式处理,应使用指令CLI.错误13.汇编语言源程序必须由四部分组成。错误14.不能给段寄存器进行立即数方式赋值。正确15.逻辑运算符AND、OR、XOR或NOT,只能用于数字表达式。错误不知道赶的上不?0ffh错在哪里 不理解为什么是不能用立即数给段寄存器赋值 ? 字母前面必须加0 如果是数字的话就不用了 你的问题还真怪的要命=。这是规矩,无规矩不成方圆,你不加0的话,机器就识别不出来,你有本事就和机器去较劲 你怎么不说 为什么。add源操作数是立即数,目标操作数可以是段寄存器吗 可以的。对段寄存器的操作,从网上抄的如下:段寄存器的操作有一些限制 –-段寄存器属专用寄存器,对他们的操作能力有限不允许立即数传送给段寄存器 MOV DS,100H;非法指令:立即数不能传送段寄存器不允许直接改变CS值 MOV CS,[SI];不允许使用的指令?不允许段寄存器之间的直接数据传送 MOV DS,ES;非法指令:不允许段寄存器间传送1.( )不能给段寄存器赋立即数。 选项: 1、 错 2、 对 1~5 题 v x x x v.6~10 题 d c b d d供参考。数据传送指令中,寄存器、立即数、存储器、段寄存器之间,哪些可以互传数据? 寄存器与寄存器之间的数据传输指令。如:mov ax,bx;立即数到通用寄存器数据传送指令。如:mov ax,5600H,这里需要注意立即数只能作为源操作数使用;寄存器与存储器之间的数据传送指令。如:mov ax,buffer;立即数到存储器的数据传送。如:mov alfa,24。8086中为什么不能将立即数直接传送到段寄存器 由于立即数直接写入段寄存器这样的指令,被翻译成机器码之后将占用更多的字节,在事先规定的指令长度范围内无法存贮下这么多的内容,因此改由先写入通用寄存器,再由通用寄存器写入段寄存器的办法代替。立即数实际上是相当占地方的

#段寄存器#操作数#数据寄存器#赋值#汇编指令

随机阅读

qrcode
访问手机版