指出下列指令中源操作数和目的操作数的寻址方式.docx

上传人:b****5 文档编号:6346406 上传时间:2023-01-05 格式:DOCX 页数:20 大小:42.17KB
下载 相关 举报
指出下列指令中源操作数和目的操作数的寻址方式.docx_第1页
第1页 / 共20页
指出下列指令中源操作数和目的操作数的寻址方式.docx_第2页
第2页 / 共20页
指出下列指令中源操作数和目的操作数的寻址方式.docx_第3页
第3页 / 共20页
指出下列指令中源操作数和目的操作数的寻址方式.docx_第4页
第4页 / 共20页
指出下列指令中源操作数和目的操作数的寻址方式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

指出下列指令中源操作数和目的操作数的寻址方式.docx

《指出下列指令中源操作数和目的操作数的寻址方式.docx》由会员分享,可在线阅读,更多相关《指出下列指令中源操作数和目的操作数的寻址方式.docx(20页珍藏版)》请在冰豆网上搜索。

指出下列指令中源操作数和目的操作数的寻址方式.docx

指出下列指令中源操作数和目的操作数的寻址方式

1.指出下列指令中源操作数和目的操作数的寻址方式:

(1) MOVSI,1000

(2) MOVBP,AX

(3) MOV[SI],1000

(4) MOVBP,[AX]

(5) ANDDL,[BX + SI + 20H]

(6) PUSHDS

(7) POPAX

(8) MOVEAX,COUNT[EDX*4]

(9) IMULAX,BX,34H

(10) JMPFARPTRLABEL

2.指出下列指令语法是否正确,若不正确请说明原因。

(1) MOVDS,0100H

(2) MOVBP,AL

(3) XCHG AX,2000H

(4) OUT 310H,AL

(5) MOVBX,[BX]

(6) MOV ES:

[BX + DI],AX

(7) MOV AX,[SI + DI]

(8) MOV SS:

[BX + SI + 100H],BX

(9) AND AX,BL

(10) MOVDX,DS:

[BP]

(11) MOV[BX],[SI]

(12) MOVCS,[1000]

(13) IN AL,BX

 3.设DS = 2000H,BX = 1256H,SI = 528FH,偏移量 = 20A1H,[232F7H] = 3280H,[264E5] = 2450H。

若独立执行下述指令后,请给出对应IP寄存器的内容。

  

(1) JMPBX;IP=?

  

(2) JMP[BX][SI];IP=?

  4.32位机中,当用MOVZX和MOVSX指令时,传送执行后,结果有什么区别?

试以传送80H为例说明之。

 6.有如下程序:

   MOVAL,45H

   ADDAL,71H

   DAA

   MOVBL,AL

   MOVAL,19H

   ADCAL,12H

   DAA

   MOVBH,AL

执行后,BX =?

标志位PF =?

CF =?

 7.执行下列程序段,指出此程序段功能。

  

(1) MOVCX,10

 LEASI,First

 LEADI,Second

 REPMOVSB

  

(2) CLD

 LEADI,ES:

[0404H]

 MOVCX,0080H

 XOR AX,AX

 REPSTOSW

 8.试用指令实现:

  

(1) AL寄存器低4位清0;

  

(2)测试DL寄存器的最低2位是否为0,若是,则将0送入AL寄存器;否则将1送AL寄存器。

 9.已知AX=8060H,DX=03F8H,端口PORT1的地址是48H,内容为0040H;PORT2的地址是84H,内容为0085H。

请指出下列指令执行后的结果。

  

(1) OUTDX,AL

  

(2) INAL,PORT1

  (3) OUTDX,AX

  (4) INAX,48H

  (5) OUTPORT2,AX

1.试用指令实现

(1)使AX寄存器清0有4种方式,试写出;

(2)BL寄存器低4位置1;

(3)CL寄存器低4位取反。

参考答案:

(1)XORAX,AX

ANDAX,0000H

SUBAX,AX

MOVAX,0000H

(2)ORBL,0FH

(3)XORCL,0FH

2.试分析下面程序段完成什么功能?

MOVCL,04H

SHLDX,CL

MOVBL,AH

SHLAX,CL

SHRBL,CL

ORDL,BL

参考答案:

(DX):

(AX)的内容左移4位

3.下列程序段执行完成后,物理地址单元01070H的内容是什么?

MOVAX,0E0H

MOVDS,AX;(DS)=00E0H

MOVBX,200H;BX指向DS从200H

单元开始的存储区

MOVCX,BX;(CX)=200H

NEXT:

MOV[BX],BL;将BL中的值存入

BX所指存储单元

INCBX

LOOPNEXT

参考答案:

该程度段实现的功能是将DS(值为00E0H)数据段中偏移地址从200H个单元赋予与它的低8位偏移地址相同的内容。

物理地址单元01070H在该数据段中的偏移地址为:

01070H–(DS)×16=0270H

所以,[01070H]=70H.

4.已知AL中存放着某字符的ASCII码,下列程序段完成的功能是什么?

若(AL)=‘A’=41H,程序段执行后,AL中的值为多少?

MOVBL,0;计数器BL清0

MOVCX,8;置循环次数8

AGAIN:

ROLAL,1;AL内容循环左移1位,

最高位送至CF

JNCNEXT;CX=1,计数器BL加1,

否则跳过

INCBL

NEXT:

LOOPAGAIN

SHRBL,1;测试BL中统计结果

(AL中1的个数)的奇偶性

JCEXIT;为奇数结束,否则将AL

最高位1

ORAL,80H

EXIT:

HLT

参考答案:

该程度段实现的功能是对AL中的ASCII码字符进行奇偶测试,并根据结果修改AL的最高位,使AL中1的个数为奇数。

若(AL)=‘A’=41H,程序段执行后,(AL)=11000001B

5.若(BX)=0002H,且有如下变量定义:

DBT1DW0400H

DBT2DD01000020H

TABDW0600H,0640H,06A0H,06C0H

请指出下列指令的寻址方式及转向地址:

(1)JMPBX

(2)JMPDBT1

(3)JMPDBT2

(4)JMPTAB[BX+2]

参考答案:

(1)转向地址(IP)=(BX)=0002H,寻址方式为段内间接转移寻址;

(2)(IP)=(DATA1)=0400H,寻址方式为段内间接转移寻址;

(3)(IP)=0020H,(CS)=0100H,即转向0100H:

0020H处,寻址方式为段间间接转移寻址;

(4)(IP)=(TAB+BX+2)=(TAB+0004H)=06A0H,寻址方式为段内间接转移寻址;

6.在数据段ADDR1地址处有200个字节,要传送到数据段地址ADDR2处。

试在下面程序段的空白处填上适当的指令或操作数,以实现上述功能。

MOVSEG,ADDR1

MOVDX,AX

MOVES,1

MOVSI,2

MOVDI,OFFSETADDR2

MOV3,200

CLD

REP4

参考答案:

该程度段实现的功能是用带重复前缀的串传送指令完成数据块搬移。

按串传送指令的约定,目标数据块应在ES附加数据段,SI指示源数据块地址,DI指示目标数据块地址,CX作重复次数计数器。

程序填空如下:

1AX(ES指向ADDR2所在的数据段)

2OFFSETADDR2(设置源数据串首地址)

3CX(设置传送的字节数)

4MOVSB(字节串传送)

7.ADDR1开始的单元中连续存放两个双字数据,将其求和存放在ADDR2开始的单元。

试在下面程序段的空白处填上适当的指令或操作数,以实现上述功能。

MOVCX,2

XORBX,BX

CLC

NEXT:

MOVAX,ADDR1[BX]

ADCAX,1

MOVADDR2[BX],AX

ADD2,2

3NEXT

参考答案:

该题要注意ADDR1的第2个双字数据相对于ADDR1的偏移地址为4。

程序填空如下:

1ADDR1[BX+4]

(与第2个双字数据对应低位或高位相加)

2BX(调整BX指向双字高位)

3LOOP(双字未加完,转NEXT处)

8.设有100H个字节的数据(补码)存放在数据段中自EA=2000H开始的存储单元中,以下程序从该数据区中找出一个最小数并存入EA=2100H的单元中,请将程序补充完整。

MIN:

MOVBX,1

MOVAL,[BX]

MOVCX,2

LP1:

INCBX

CMPAL,[BX]

3LP2

MOVAL,[BX]

LP2:

DECCX

JNZ4

MOV5,AL

参考答案:

该程度段找最小数的思想是先假定第1个数存于AL中,然后依次同第2个数开始的余下数据比较。

所以,各空应填:

12000H(BX指向数据区首地址2000H单元)

20FFH(设置比较次数,第一单元不比较)

3JLE/JNG(小于等于或不大于转LP2)

4LP1(未比较完转LP1继续扫描比较)

5[2100H](AL中存放的最小值存入2100H单元)

9

(1).判断执行“B310H+21A4H”运算后,OF、CF、ZF、SF、PF和AF的状态。

参考答案:

1011001100010000B

+0010000110100100B

1101010010110100B=D4B4H

OF=Cs⊕Cp=0⊕0=0,CF=0,

ZF=0,SF=1,PF=1,AF=0

9

(2).判断执行“A400H+7100H”运算后,OF、CF、ZF、SF、PF和AF的状态。

参考答案:

1010010000000000B

+0111000100000000B

10001010100000000B=D4B4H

OF=Cs⊕Cp=1⊕1=0,CF=1,

ZF=0,SF=0,PF=1,AF=0

9(3).判断执行“A323H-8196H”运算后,OF、CF、ZF、SF、PF和AF的状态。

参考答案:

1010001100100011B

-1000000110010110B

0010000110001101B=D4B4H

OF=Cs⊕Cp=0⊕0=0,CF=0,

ZF=0,SF=0,PF=1,AF=1

10.执行下列程序段,指出此程序段功能。

  

(1) MOVCX,10

 LEASI,First

 LEADI,Second

 REPMOVSB

  

(2) CLD

 LEADI,ES:

[0404H]

 MOVCX,0080H

 XOR AX,AX

 REPSTOSW

参考答案:

(1)将源字符串First的10个字节移送至目标字符串Second。

(2)将内存中从0404H单元开始的128个字单元清零。

11.试用指令实现:

  

(1) AL寄存器低4位清0;

  

(2)测试DL寄存器的最低2位是否为0,若是,则将0送入AL寄存器;否则将1送AL寄存器。

参考答案:

(1)ANDAL,0F0H

(2)ANDDL,03H

JZLAB1

MOVAL,01H

LAB1:

MOVAL,00H

或TESTDL,03H

JZL1

JNZL2

L1:

MOVAL,00H

L2:

MOVAL,01H

12.写出下列程序段计算的表达式,并计算程序执行后(AL)的值。

(8分)

MOVBX,0110100101101100B

MOVCX,12

XORAL,AL

MOVDL,1

AGAIN:

SHLBX,1

JCNEXT

ADDAL,DL

NEXT:

INCDL

LOOPAGAIN

HLT

参考答案:

表达式为1+4+6+7+9+12

(AL)=39D=27H

13.有下列数据段:

DATASEGMENT

MAXEQU03f9H

VAL1EQUMAXMOD0AH

VAL2EQUVAL1*2

BUFFDB4,5,‘1234’

BUF2DB?

LENDEQUBUF2-BUFF

DATAENDS

请写出数据段中MAX,VAL1,VAL2,LEND符号所对应的值。

参考答案:

MAX=256×3+16×15+9

=1017D=03F9H

VAL1=1017÷10=07H(101余7)VAL2=7×2=14D=0EH

LEND=BUF2–BUFF=06H

14.已知X、Y、Z被赋值如下:

   XEQU60

YEQU70

ZEQU8

试求下列表达式的值:

(1) X*Y-Z

(2) X/8 + Y

(3) XMOD(Y/Z)

(4) X*(YMOD2)

(5) XGEY

(6) YANDZ

参考答案:

(1) X*Y-Z=60×70–8

=4192D

=1060H

(2) X/8 + Y=60÷8+70

=77D

=004DH

(3) XMOD(Y/Z)=60MOD(70÷8)

=60MOD8=0004H

(4) X*(YMOD2)=60×(70MOD2)

=60×0=00H

(5) XGEY

(X≥Y不成立,结果为00H)

(6) YANDZ=70AND8

=46HAND08H

=01000110BAND00001000B

=00H

15.如何用256×1芯片组成4096×8的存储容量。

答案:

16.设有3个字变量的变量名及其内容如下:

VAR13C46H

VAR2F678H

VAR30059H

试设计一个数据段定义这3个变量及其地址(包括段地址和偏移地址)表变量ADDRTABL。

参考答案:

数据段定义如下:

DATASEGMENT

VAR1DW3C46H

VAR2DWF678H

VAR3DW0059H

ADDRTABLDDVAR1

DDVAR2

DDVAR3

DATAENDS

5-1.已知8086CPU中当前段寄存器的基址(DS) = 021FH,(ES) = 0A32H,(CS) = 234EH,则上述各段在存储器空间中物理地址的首地址号及末地址号是什么?

参考答案:

DS:

DS×10H=021F0H(首地址)

=021F0H+0FFFFH

=121EFH(末地址)

ES:

DS×10H=0A320H(首地址)

=1A31FH(末地址)

CS:

DS×10H=234E0H(首地址)

=334DFH(末地址)

5-2.假如8086CPU中,(CS) = 234EH,已知物理地址为25432H,若(CS)的内容被指定成1A31H,则物理地址应为什么地址号?

参考答案:

偏移地址=原物理地址–(CS)×10H

=25432H–234E0H

=1F52H

新物理地址=(CS)×10H+偏移地址

=1A310H+1F52H

=1C262H

5-5.在8086中,堆栈操作是字操作,还是字节操作?

已知(SS) = 1050H,(SP) = 0006H,(AX) = 1234H。

若执行对AX的压栈操作(即执行PUSHAX),操作后则(AX)存放在何处?

参考答案:

(1)堆栈操作是字操作。

(2)首先SP自动减2,(SP)=0004H,然后压入AX,所以(AX)存放在:

PA=(SS)×10H+0004H=10504H

执行此操作时,8086输出的状态信息:

S0=1,S1=1,S2=0,表示写内存;S3=1,S4=0,访问堆栈段;S5=0,禁止可屏蔽中断;S6=0,8086与总线相连。

1.

(1)已知数据段定义如下,假设该数据段从56ABH:

0099H开始,请用示意图说明各变量在内存中的分配情况。

DATASEGMENT

VAR1DB1000B,32,30H

VAR2DB‘B2b’

VAR3DW2DUP(?

VAR4DD56ABH

DATAENDS

参考答案:

(2)已知数据段定义如下,假设该数据段从0A8BH:

0000H存储单元开始,请用示意图说明各变量在内存中的分配情况。

DATASEGMENT

VAR1DW06D9H

VAR2DB‘eA’

VAR3DB?

VAR4DW2DUP(00)

DATAENDS

参考答案:

2.对下列RAM芯片组排列,各需要多少个RAM芯片?

多少个芯片组?

多少根片内地址线?

若和8088CPU相连,则又有多少根片选地址线?

(1)1K×4位芯片组成16K×8位存储空间

(2)8K×8位芯片组成512K×8位存储空间

参考答案:

(1)芯片数:

(16K×8)/(1K×4)=32

芯片组数:

16K/1K=16

片内地址线:

log21K=10

片选地址线:

log216K-10=4

(2)芯片数:

(512K×8)/(8K×8)=64

芯片组数:

512K/8K=64

片内地址线:

log28K=13

片选地址线:

log2512K-13=6

3.试用指令实现

(1)使AX寄存器清0有4种方式,试写出;

(2)BL寄存器低4位置1;

(3)CL寄存器低4位取反。

参考答案:

(1)XORAX,AX

ANDAX,0000H

SUBAX,AX

MOVAX,0000H

(2)ORBL,0FH

(3)XORCL,0FH

4.若(BX)=0002H,且有如下变量定义:

DBT1DW0400H

DBT2DD01000020H

TABDW0600H,0640H,06A0H,

06C0H

请指出下列指令的寻址方式及转向地址:

(1)JMPBX

(2)JMPDBT1

(3)JMPDBT2

(4)JMPTAB[BX+2]

参考答案:

(1)转向地址(IP)=(BX)=0002H,寻址方式为段内间接转移寻址;

(2)(IP)=(DATA1)=0400H,寻址方式为段内间接转移寻址;

(3)(IP)=0020H,(CS)=0100H,即转向0100H:

0020H处,寻址方式为段间间接转移寻址;

(4)(IP)=(TAB+BX+2)=(TAB+0004H)=06A0H,寻址方式为段内间接转移寻址;

5.设有100H个字节的数据(补码)存放在数据段中自EA=2000H开始的存储单元中,以下程序从该数据区中找出一个最小数并存入EA=2100H的单元中,请将程序补充完整。

MIN:

MOVBX,1

MOVAL,[BX]

MOVCX,2

LP1:

INCBX

CMPAL,[BX]

3LP2

MOVAL,[BX]

LP2:

DECCX

JNZ4

MOV5,AL

参考答案:

该程度段找最小数的思想是先假定第1个数存于AL中,然后依次同第2个数开始的余下数据比较。

所以,各空应填:

12000H(BX指向数据区首地址2000H单元)

20FFH(设置比较次数,第一单元不比较)

3JLE/JNG(小于等于或不大于转LP2)

4LP1(未比较完转LP1继续扫描比较)

5[2100H](AL中存放的最小值存入2100H单元)

6

(1).判断执行“B310H+21A4H”运算后,OF、CF、ZF、SF、PF和AF的状态。

参考答案:

1011001100010000B

+0010000110100100B

1101010010110100B=D4B4H

OF=Cs⊕Cp=0⊕0=0,CF=0,

ZF=0,SF=1,PF=1,AF=0

6

(2).判断执行“A400H+7100H”运算后,OF、CF、ZF、SF、PF和AF的状态。

参考答案:

1010010000000000B

+0111000100000000B

10001010100000000B=D4B4H

OF=Cs⊕Cp=1⊕1=0,CF=1,

ZF=0,SF=0,PF=1,AF=0

6(3).判断执行“A323H-8196H”运算后,OF、CF、ZF、SF、PF和AF的状态。

参考答案:

1010001100100011B

-1000000110010110B

0010000110001101B=D4B4H

OF=Cs⊕Cp=0⊕0=0,CF=0,

ZF=0,SF=0,PF=1,AF=1

7.试用指令实现:

  

(1) AL寄存器低4位清0;

  

(2)测试DL寄存器的最低2位是否为0,若是,则将0送入AL寄存器;否则将1送AL寄存器。

参考答案:

(1)ANDAL,0F0H

(2)ANDDL,03H

JZLAB1

MOVAL,01H

LAB1:

MOVAL,00H

或TESTDL,03H

JZL1

JNZL2

L1:

MOVAL,00H

L2:

MOVAL,01H

8.写出下列程序段计算的表达式,并计算程序执行后(AL)的值。

(8分)

MOVBX,0110100101101100B

MOVCX,12

XORAL,AL

MOVDL,1

AGAIN:

SHLBX,1

JCNEXT

ADDAL,DL

NEXT:

INCDL

LOOPAGAIN

HLT

参考答案:

表达式为1+4+6+7+9+12

(AL)=39D=27H

9.已知8086CPU中当前段寄存器的基址(DS) = 021FH,(ES) = 0A32H,(CS) = 234EH,则上述各段在存储器空间中物理地址的首地址号及末地址号是什么?

参考答案:

DS:

DS×10H=021F0H(首地址)

=021F0H+0FFFFH

=121EFH(末地址)

ES:

DS×10H=0A320H(首地址)

=1A31FH(末地址)

CS:

DS×1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1