ZKX's LAB

怎样区别符号指令的寻址方式 立即数可以直接送入段寄存器吗

2021-03-08知识26

汇编语言加中括号表示什么? 一般说来,加方括号[]表示一种间接的取操作数方式,有点类似于C语言中的指针概念.第一条指令 ADD AL,[SI]中,[SI]表示寄存器间接寻址.也就是说,与AL中内容相加的加数,不是SI寄存器的内容,而是以SI的内容作为地址指针的内存操作数.假设SI的内容是1234H,这条加法指令,不是将1234H加到AL里(也加不了,数据类型不对),而是以1234H作为地址,从内存的数据段(DS所指)中,段内偏移地址为1234H的那个内存单元中取出一个字节的数据来,加到AL中.同样的,第二条指令 MOV[20H],AL,是将AL中的内容传送到内存里的一个单元中去.这个单元的有效地址就是[20H].这里,加了方括号的20H,不是运算所用的数据,而是数据的地址.对问题补充的回复:AL是不可能加方括号的.8086汇编中,能加方括号的只有4个寄存器:SI,DI,BX,BP常数也可以加方括号,比如[020H]另外,变量名可以加方括号,但与上面两种情况不同,加了方括号的变量名,意义不变.至于方括号内,可以出现BX+DI,SI+2这样的表达式,这是一些不同的寻址方式.SI 是寄存器寻址[SI]是寄存器间接寻址[SI+2]是相对的寄存器间接寻址,又称直接变址寻址,它也可以写成2[SI]这样的形式[BX+SI]是基址变址寻址,也可写成[BX][SI][BX+SI+20H]是相对的基址变址。

【微机原理及应用】编写下列各题的指令序列? (1)mov ax,1234Hmov ds,ax(2)mov ax,[3000H]mov bx,[4000H]mov[3000H],bxmov[4000H],ax方法二同样道理,交换用堆栈或者是用一个内存空间,堆栈可以利用pop 和push组合达到目的(3)push axpush bxpop axpop bx

根据要求写出一条汇编语言指令。 (1)数据宽度未知,姑且以字节为例:MOV Byte ptr[SI],0(2)XOR BX,0FFF0H

求前辈帮忙解答下汇编习题 呵呵 俺来帮你解决吧一 单项选择题1将数据1234H存放在存储单元中的伪指令是(TT DW 1234H)。2(CX)=0或ZF=13 0297H4 STD5 SS6 直接寻址7 OR AL,01H8 MOV BX,ES:[DI]9 1117AH二 多项选择题1 SHL AX,4 MOV CS,AX2 循环参数初始化 循环工作部分 循环控制部分3 CS DS ES4 宏指令的使用,并不能够简化目标程序 宏指令和子程序都可以简化源程序的书写宏指令执行时,不需要保护和恢复断点5 NEAR FAR6 直接寻址 基址变址寻址 寄存器间接寻址7 ZF=0 OF=18 DB?ORG 30H DATA SEGMENT9 XOR BX,BX MOV BX,010 DB 100H DUP(0)DW 50H DUP(0)呵呵 也没有加分啊 题很多呀 就选满意回答吧

怎样区别符号指令的寻址方式 立即数可以直接送入段寄存器吗

怎样区别符号指令的寻址方式

下列8086指令中,正确的是: A,错.MUL∶指令助记符—无符号数乘法.字节乘法:(AL)*(源操作数)->;AX字乘法:(AX)*(源操作数)->;DX和AX若结果的高半部分(AH或DX,对应字节和字)为非0 值,则CF和OF置1;否则CF和OF清0.B,错.POP∶指令助记符—出栈.将栈顶元素弹出送至某一寄存器,段寄存器(CS除外)或存储器中.首先将SP指的内容送至低8位,SP加1;再将SP指的内容送入高8位,SP再加1.C,正确.IN∶指令助记符—输入.允许把一个字或字节由输入端口(port)传送到AX或AL.端口地址可以用直接寻址(IN AL n),也可用DX间接寻址(IN AL,DX).8 位地址直接寻址,可寻址256 个端口;DX间接寻址,可寻址64K个端口.D,错.MOV∶指令助记符—通用数据传送.注意,①两个段寄存器之间不能直接传送数据;②两个储存单元之间不能直接传送数据(可以用MOVS);两个操作数中必须有一个是寄存器或立即数;③立即数和段寄存器CS不能作为目的操作数.

立即寻址方式的操作数( ),它经常用于寄存器赋初值.怎么填.A,整数B,变量C,符号D常量. D立即数:操作数直接放在指令中,紧跟在操作码之后,它作为指令的一部分存放在代码段里.指令中的源操作数是立即数,即源操作数是参加操作的数据本身.eg1:MOV AL,5指令执行后,(AL)=05Heg2:MOV AX,1234H执行指令后,(AX)=1234H备注:立即寻址方式用来表示常数,它经常用于给寄存器赋初值,并且只能用于源操作数字段,不能用于目的操作数字段,且源操作数长度应与目的操作数长度一致.

微机原理问题:将AX中的内容按相反顺序存入BX中. CODE SEGMENTASSUME CS:CODESTART:MOV AX,1234H;将立即数0x1234赋值给寄存器AXMOV CX,16;将立即数16赋值给寄存器CX,作为循环计数器AA1:SHL AX,1;将AX左移一位,最高位到CF中RCR BX,1;循环右移BX:将CF中的数据放入BX最高位,原有BX的最低位同时存储到CFLOOP AA1;将循环跳转到符号AA1,直至CX为0MOV AX,4C00H;将立即数0x4C00赋值给AX,为中断做数据准备INT 21H;调用中断输出数据BXCODE ENDSEND START

关于立即寻址方式操作数所在位置的说法正确的是() 立即寻址的操作数就写在指令中,和操作码一起放在程序存贮器中.立即数寻址方式通常用于对通用寄存器或内存单元赋初值.所以答案是A

MCS-51共有哪7种寻址方式?各有什么特点? (1)立即寻址:操作数就包含在指令代码中,在操作码之后,称为立即数,用“#”表示.(2)直接寻址:直接使用数所在单元的地址找到了操作数,所以称这种方法为直接寻址.操作数在SFR、内部RAM、位地址空间.(3)寄存器寻址:对选定的工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR中的数进行操作.(4)寄存器间接寻址:把地址放在另外一个寄存器中,根据这个寄存器中的数值决定该到哪个单元中取数据.(5)变址寻址(基址+变址):以DPTR或PC为基址寄存器,累加器A为变址寄存器.把两者内容相加,结果作为操作数的地址.(6)相对寻址:将PC中的当前内容与指令第二字节给出的数相加,结果作为跳转指令的转移地址(转移目的地址).(7)位寻址:对片内RAM的位寻址区和某些可位寻址的特殊功能寄存器进行位操作时的寻址方式.

#立即数可以直接送入段寄存器吗

随机阅读

qrcode
访问手机版