指出下列指令中源操作数和目的操作数的寻址方式Word格式.docx
- 文档编号:19408790
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:20
- 大小:42.17KB
指出下列指令中源操作数和目的操作数的寻址方式Word格式.docx
《指出下列指令中源操作数和目的操作数的寻址方式Word格式.docx》由会员分享,可在线阅读,更多相关《指出下列指令中源操作数和目的操作数的寻址方式Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
MOVBL,AL
MOVAL,19H
ADCAL,12H
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
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
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)将源字符串First的10个字节移送至目标字符串Second。
(2)将内存中从0404H单元开始的128个字单元清零。
11.试用指令实现:
(1)ANDAL,0F0H
(2)ANDDL,03H
JZLAB1
MOVAL,01H
LAB1:
MOVAL,00H
或TESTDL,03H
JZL1
JNZL2
L1:
MOVAL,00H
L2:
12.写出下列程序段计算的表达式,并计算程序执行后(AL)的值。
(8分)
MOVBX,0110100101101100B
MOVCX,12
XORAL,AL
MOVDL,1
AGAIN:
SHLBX,1
JCNEXT
ADDAL,DL
INCDL
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:
10H=0A320H(首地址)
=1A31FH(末地址)
CS:
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开始,请用示意图说明各变量在内存中的分配情况。
VAR1DB1000B,32,30H
VAR2DB‘B2b’
VAR3DW2DUP(?
)
VAR4DD56ABH
(2)已知数据段定义如下,假设该数据段从0A8BH:
0000H存储单元开始,请用示意图说明各变量在内存中的分配情况。
VAR1DW06D9H
VAR2DB‘eA’
VAR3DB?
VAR4DW2DUP(00)
2.对下列RAM芯片组排列,各需要多少个RAM芯片?
多少个芯片组?
多少根片内地址线?
若和8088CPU相连,则又有多少根片选地址线?
(1)1K×
4位芯片组成16K×
8位存储空间
(2)8K×
8位芯片组成512K×
(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.试用指令实现
4.若(BX)=0002H,且有如下变量定义:
DBT1DW0400H
DBT2DD01000020H
TABDW0600H,0640H,06A0H,
06C0H
(1)JMPBX
(2)JMPDBT1
(3)JMPDBT2
(4)JMPTAB[BX+2]
5.设有100H个字节的数据(补码)存放在数据段中自EA=2000H开始的存储单元中,以下程序从该数据区中找出一个最小数并存入EA=2100H的单元中,请将程序补充完整。
6
(1).判断执行“B310H+21A4H”运算后,OF、CF、ZF、SF、PF和AF的状态。
6
(2).判断执行“A400H+7100H”运算后,OF、CF、ZF、SF、PF和AF的状态。
6(3).判断执行“A323H-8196H”运算后,OF、CF、ZF、SF、PF和AF的状态。
7.试用指令实现:
8.写出下列程序段计算的表达式,并计算程序执行后(AL)的值。
9.已知8086CPU中当前段寄存器的基址(DS) = 021FH,(ES) = 0A32H,(CS) = 234EH,则上述各段在存储器空间中物理地址的首地址号及末地址号是什么?
1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指出 下列 指令 操作 目的 寻址 方式