第3章 80x86指令系统习题解答
80×86汇编语言程序设计课后习题参考答案

/view/555758b91a37f111f1855b3e.html附录:《IBM—PC汇编语言程序设计》习题参考答案第一章.习题1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。
汇编语言第3-4章平时练习题

3.知识点:0403(汇编语言程序格式) *汇编语言源程序经汇编程序汇编后产生的文件的扩展名是(B)。
选项A)MAP选项B)OBJ选项C)ASM选项D)EXE4.知识点:0403(汇编语言程序格式) *汇编语言的什么文件经链接(LINK)后产生可执行文件?(D)选项A)EXE选项B)OBJ选项C)MAP选项D)LST7. 知识点:0401(汇编程序功能) *汇编语言源程序是(A)程序。
选项A)不可直接执行的选项B)经连接后就可直接执行的选项C)经汇编程序汇编后就可执行的选项D)可直接执行的14知识点:0302(程序占有的空间和执行时间) **如果指令的运算结果为0,则(C)标志位为1。
选项A)SF选项B)CF选项C)ZF选项D)OF15知识点:0302(程序占有的空间和执行时间) **如果指令的运算结果中有奇数个1,则(C)标志位为0。
选项A)OF选项B)CF选项C)PF选项D)SF16. 知识点:0301(80x86的寻址方式) *IBM PC机的内存是按(D)是编址的。
选项A)位选项B)双字选项C)字选项D)字节23知识点:0301(80x86的寻址方式80x86的寻址方式) **如果内存的某一单元的物理地址为12345H。
则它的逻辑地址为(C):0345H。
选项A)0120H选项B)12000H选项C)1200H选项D)0012H24知识点:0301(80x86的寻址方式80x86的寻址方式) ***如果一个字变量中存放16个字,该字变量的起始地址为1000H:2000H,则该字变量数据区中的最末一个字单元的物理地址为( D)。
选项A)12020H选项B)12000H选项C)1201FH选项D)1201EH25知识点:0301(80x86的寻址方式80x86的寻址方式) **设22000H、22001H单元分别存放的数据为12H、34H,若要读取22000H字单元中的数据,此时读出的数据是(A)。
第三章 80X86指令系统和寻址方式

7.相对基址变址寻址方式:
有效地址是基址寄存器(BX/BP)、变址寄存 器(SI/DI)与一个8位或16位位移量之和:
EA=BX/BP+SI/DI+8/16位位移量
该方式中,BX/BP选一,SI/DI选一 段地址对应BX基址寄存器默认是DS,对应BP 基址寄存器默认是SS;可用段超越前缀改变
基址寻址:偏移地址是指令中给定的偏移量和寄存器
BX或基数指针BP的内容之和;BX作为基址寄存器时且无 段超越时,物理地址由DS和偏移地址形成;BP作为基址 寄存器时且无段超越时,物理地址由SS和偏移地址形成。
例如:MOV BX,DELTA[BP]
变址寻址:操作数的偏移地址为指令中给定的8位或16
直接寻址的功能
MOV AX,DS:[2000H]
直接寻址的执行
MOV AX,DS:[2000H]
例:MOV AX, [ 2000H ] EA=2000H, 假设(DS)=3000H, 那么PA=32000H
AH
AL
30
50
32000
50 30 (AX)= 3050 H
例如: MOV AX, DATA 或 MOV AX, [DATA] 这里DATA是存放操作数单元的符号地址。
寄存器间接寻址的功能
寄存器间接寻址的执行
例:
MOV AX, [BX] PA = 16d × (DS) + (BX) MOV AX, ES:[BX] PA = 16d × (ES) + (BX) MOV AX, [BP] PA = 16d × (SS) + (BP) * 不允许使用AX、CX、DX 存放 EA
即: 若用寄存器SI,DI,BX间接寻址,则操作数在当前数据段中。 PA=(DS)×10H+EA 若用寄存器BP间接寻址,则操作数在当前堆栈段中。 PA=(SS)×10H+EA
汇编语言沈美明答案汇编语言第3章答案沈美明

汇编语言沈美明答案汇编语言第3章答案沈美明第三章 80X86的指令系统和寻址方式 1、给定(BX )=637DH,(SI )=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么答案:(1)立即寻址没有(2)直接寻址 7237H(3)使用BX 的寄存器寻址没有(4)使用BX 的间接寻址 637DH(5)使用BX 的寄存器相对寻址 0D5F0H(6)基址变址寻址 8E18H(7)相对基址变址 004FH2、根据下列要求,写出相应的汇编指令(1)把BX 寄存器和DX 寄存器的内容相加,结果存入DX 寄存器中。
(2)用寄存器BX 和SI 基地址变址寻址方式把存储器中的一个字节与AL 寄存器的内容相加,并把结果送到AL 寄存器中。
(3)用寄存器BX 和位移量0B2H 的寄存器相对寻址方式把存储器中的一个字和(CX )相加,并把结果送回存储器中。
(4)用位移量为0524H 的直接寻址方式把存储器中的一个字与数2A59H 相加,并把结果送回该存储单元中。
(5)把数0B5H 与(AL )相加,并把结果送回AL 中。
答案:(1)ADD DX,BX(2)ADD AL,[BX][SI](3)ADD [BX][0B2H], CX(4)MOV AX,2A59HADD [0524H] ,AX(5)ADD AL ,0B5H3、写出把首地址为BLOCK 的字数组的第6个字送回到DX 寄存器的指令。
要求使用以下几种寻址方式:(1)寄存器间接寻址(2)寄存器相对寻址(3)基址变址寻址答案:(1)寄存器间接寻址MOV BX,OFFSET [BLOCK][0AH]MOV DX ,[BX](2)寄存器相对寻址 MOV SI,OAHMOV DX,[BLOCK][SI] (3)基址变址寻址MOV BX ,BLOCKMOV SI,OAHMOV DX,[BX][SI]4、现有(DS )=2000H,(BX)=0100H,(SI)=0002H,(xx0)=12H,(xx1)=34H,(xx2)=56H, (xx3)=78H,(21200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX 寄存器的内容。
80X86汇编语言程序设计教程(杨季文)课后习题答案

第二章答案题2.1 8086/8088通用寄存器的通用性表现在何处?8个通用寄存器各自有何专门用途?哪些寄存器可作为存储器寻址方式的指针寄存器?答:8086/8088通用寄存器的通用性表现在:这些寄存器除了各自规定的专门用途外,他们均可以用于传送和暂存数据,可以保存算术逻辑运算中的操作数和运算结果;8个通用寄存器的专门用途如下:AX 字乘法,字除法,字I/OBX 存储器指针CX 串操作或循环控制中的计数器DX 字乘法,字除法,间接I/OSI 存储器指针(串操作中的源指针)DI 存储器指针(串操作中的目的指针)BP 存储器指针(存取堆栈的指针)SP 堆栈指针其中BX,SI,DI,BP可作为存储器寻址方式的指针寄存器题2.2 从程序员的角度看,8086/8088有多少个可访问的16位寄存器?有多少个可访问的8位寄存器?答:从程序员的角度看,8086/8088有14个可访问的16位寄存器;有8个可访问的8位寄存器;题2.3 寄存器AX与寄存器AH和AL的关系如何?请写出如下程序片段中每条指令执行后寄存器AX的内容:MOV AX,1234HMOV AL,98HMOV AH,76HADD AL,81HSUB AL,35HADD AL,AHADC AH,ALADD AX,0D2HSUB AX,0FFH答: MOV AX,1234H AX=1234HMOV AL,98H AX=1298HMOV AH,76H AX=7698HADD AL,81H AX=7619HSUB AL,35H AX=76E4HADD AL,AH AX=765AHADC AH,AL AX=D15AHADD AX,0D2H AX=D22CHSUB AX,0FFH AX=D12DH题2.4 8086/8088标志寄存器中定义了哪些标志?这些标志可分为哪两类?如何改变这些标志的状态?答: 8086/8088标志寄存器中定义了9个标志,如下:CF: Carry FlagZF: Zero FlagSF: Sign FlagOF: Overflow FlagPF: Parity FlagAF: Auxiliary Carry FlagDF: Direction FlagIF: Interrupt-enable FlagTF: Trap Flag这些标志可分为两类,分别为:1、运算结果标志;2、状态控制标志;采用指令SAHF可把AH中的指定位送至标志寄存器低8位SF、ZF、AF、PF、CF;采用CLC可清除CF,置CF到0采用STC可置CF到1采用CLD可置DF到0采用sTD可置DF到1采用CLI可置IF到0采用STI可置IF到1另外,在某些指令执行过程中会改变部分标志的状态;题2.5 请说说标志CF和标志OF的差异。
80x86微机原理参考答案

80x86微机原理参考答案第一章计算机基础(P32)1-1电子管,晶体管,中小规模集成电路、大规模、超大规模集成电路。
1-2把CPU和一组称为寄存器(Registers)的特殊存储器集成在一片大规模集成电路或超大规模集成电路封装之中,这个器件才被称为微处理器。
以微处理器为核心,配上由大规模集成电路制作的只读存储器(ROM)、读写存储器(RAM)、输入/输出、接口电路及系统总线等所组成的计算机,称为微型计算机。
微型计算机系统是微型计算机配置相应的系统软件,应用软件及外部设备等.1-3写出下列机器数的真值:(1)01101110 (2)10001101(3)01011001 (4)11001110答案:(1)+110 (2)-13(原码) -114(反码)-115(补码)(3)+89 (4)-78(原码)-49(反码)-50(补码)1-4写出下列二进制数的原码、反码和补码(设字长为8位):(1)+010111 (2)+101011(3)-101000 (4)-111111答案:(1)[x]原=00010111 [x]反= 00010111 [x]补= 00010111(2)[x]原=00101011 [x]反= 00101011 [x]补= 00101011(3)[x]原=10101000 [x]反= 11010111 [x]补= 11011000(4)[x]原=10111111 [x]反= 11000000 [x]补=110000011-5 当下列各二进制数分别代表原码,反码,和补码时,其等效的十进制数值为多少?(1)00001110 表示原码14,反码14,表示补码为14(2)11111111 表示原码-127,反码-0,表示补码为-1(3)10000000 表示原码-0,反码-127,表示补码为-128(4)10000001 表示原码-1,反码-126,表示补码为-1271-6 已知x1=+0010100,y1=+0100001,x2=-0010100,y2=-0100001,试计算下列各式。
80X86指令系统填空题

填空题一览表课程名称:微机原理及应用************************************************************章节名称:第三章80X86指令系统************************************************************知识点名称:指令的基本格式************************************************************试题1:指令由_______字段和_______字段组成。
答案:操作码,操作数试题2:以下指令中,设执行前:DS=3000H,BX=0600H,SI=00B0H,ES=2000H,SS=1000H,CS=3500H,BP=0050H。
(1)执行指令MOV AX,BX后,AX=_______H,BX=_______H,该指令的源操作数是_______寻址方式。
(2)执行指令ADD AX,[BX][SI],其源操作数物理为_______H,源操作数是_______寻址方式。
答案:(1)0600、0600、寄存器(2)306B0、基址加变址************************************************************知识点名称:8086/8088指令系统************************************************************试题3:8086指令系统中算术运算指令主要包括_______、减法指令、_______、_______和压缩BCD码调整指令。
答案:加法指令,乘法指令,除法指令试题4:无符号数乘法使用_______指令;带符号数除法使用_______指令。
答案:MUL,IDIV试题5:随机存储器RAM主要包括________和________两大类。
答案:SRAM、DRAM试题6:设(CX)=5304H,执行ROL CH,CL后,(CH)=_______H。
第三章 80X86的寻址方式和指令系统

操作码 操作数
操作码和操作数的字节数由具体的指令系统决定。
8086指令编码格式
操作码
对于MOV 指令应注意几个问题:
①存储器传送指令中,不允许对CS和IP进行操作;
②两个操作数中,除立即寻址之外必须有一个为寄存 器寻址方式,即两个存储器操作数之间不允许直接进 行信息传送; 如我们需要把地址(即段内的地址偏移量)为AREAl 的存储单元的内容,传送至同一段内的地址为AREA2 的存储单元中去,MOV指令不能直接完成这样的传送, 但我们可以CPU内部寄存器为桥梁来完成这样的传送: MOV AL,AREAl MOV AREA2,AL
8086指令编码格式操作码三类格式操作码寻址方式操作码寻址方式操作数具体的字节数根据指令的不同有16字节操作码操作码操作码操作码操作码操作码寻址方式寻址方式寻址方式寻址方式寻址方式操作数操作数操作数操作数操作数操作数操作数操作数操作数操作数指令编码举例
第三章 80X86的寻址方式和指令系统
3.1 指令的格式
但是,只要在指令中指定是段超越的,则可以用 别的段寄存器作为地址基准。
4) 比例变址寻址
物理地址=段寄存器:[变址寄存器*比例因子+偏移量]
默认组合:
DS:[SI*比例因子+偏移量]
ES:[DI*比例因子+偏移量]
例:MOV AX,50H[SI]*4
5) 基址加变址寻址 把BX和BP看成是基址寄存器,把SI、DI看着是 变址寄存器,把一个基址寄存器(BX或BP)的内容 加上一个变址寄存器(SI或DI)的内容,再加上指令 中指定的8位或16位偏移量(当然要以一个段寄存器 作为地址基准)作为操作数的偏移地址,如图所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0150H[BX], (10)SAR BYTE PTR 0150H[BX],1 =____, CF=____, (11350H) =____, CF=____, OF=____ 解:EA=BX+0150H=1350H PA= PA=DS*16+EA=11350H, (11350H)=0A5H= 10100101B 11010010B=0D2H, CF=1,OF=0 当移位数为1 最高位不变则OF=0) (当移位数为1是,最高位不变则OF=0) 0150H[BX], (11)SAL BYTE PTR 0150H[BX],1 (11350H)=____,CF=____, (11350H)=____,CF=____,OF=____ 解:EA=BX+0150H=1350H,PA=DS*16+EA=11350, (11350H)=0A5H= 10100101B 01001010B=4AH, CF=1,OF=1
3.4
阅读下列各小题的指令序列, 阅读下列各小题的指令序列,在后面空格中填入 该指令序列的执行结果。 该指令序列的执行结果。 BL, (1) MOV BL,85H MOV AL,17H AL, AL, ADD AL,BL DAA AL=____, BL=____, AL=____, BL=____, CF=____ 解:17H+85H=9CH AL 17H+85H= 压缩的BCD码加法十进制调整指令。 BCD码加法十进制调整指令 DAA 压缩的BCD码加法十进制调整指令。 (AL的低 的低4 >9或AF=1,ALAL+06H,AF (AL的低4位>9或AF=1,ALAL+06H,AF1; AF是辅助进位标志用以标志D3 D4的进位 是辅助进位标志用以标志D3向 AF是辅助进位标志用以标志D3向D4的进位 AL的高 的高4 >9或CF=1,ALAL+60H,CF1;) AL的高4位>9或CF=1,ALAL+60H,CF1;) AL=9CH+ 06H=0A2H 02H, AL=0A2H+60H=02H AL=0A2H+60H=02H, BL=85H CF=1
BX, (3)LEA BX,[BX+20H][SI] AX, MOV AX,[BX+2] 解:BX= BX+20H+ SI=0056H EA= BX+2=58H PA=DS*16+EA=91D0H+58H=9228H PA= AX=(09228H)=1E40H AX=(09228H)= (4) LDS SI,[BX][DI] MOV[SI], MOV[SI],BX PA=DS 解:EA= BX+DI=56H, PA= *16+EA=91D0H+56H =9226H SI=(09226H)=00F6H, DS=(09228H)=1E40H SI=00F6H, PA= *16+EA= PA=DS EA=1E400H+00F6H=1E4F6H EA= SI= (1E4F6H)= BX=0024H
BH, (7)SUB BH,0150H[BX][SI] BH=____,SF=____,ZF=____,PF=____,CF=____, BH=____,SF=____,ZF=____,PF=____,CF=____,0F=____ EA=0150H+BX+SI=26A4H; 解:EA=0150H+BX+SI=26A4H; PA=DS*16+EA=10000H+26A4H=126A4H; PA=DS*16+EA=10000H+26A4H=126A4H; (126A4H)=9DH,BH=12H BH=75H, SF=0,ZF=0,PF=0, CF=1 ,OF=0 (8)INC BYTE PTR 0152H[BX] (11352H)=____,(11353H)=____, (11352H)=____,(11353H)=____,CF=____ 解:EA=0152H+ BX= 1352H,PA=DS*16+EA=11352, (11352H)=0FFH, 不影响CF (11352H)=00H, (11353H)= 26H, 不影响CF (9)INC WORD PTR 0152H[BX] (11352H)=____,(11353H)=____, (11352H)=____,(11353H)=____,CF=____ 解:EA=0152H+ BX= 1352H, PA=DS*16+EA=11532, (11352H)=0FFH, (11353H)= 26H (11352H)=00H, (11353H)= 27H, 不影响 不影响CF
解: 补码为-19,IP目标 目标=IP源+2+EA(即-19) (1)E7补码为 ) 补码为 , 目标 源 ( ) =016EH+2-19=0157H 因为段内寻址,所以cs=2000H不变 因为段内寻址,所以 不变 目标=IP源+3 (2)IP目标 ) 目标 源 +EA=016EH+3+1600H=1771H 所以cs=2000H不变 因为段内寻址 所以 不变 所以cs=2000H不变 (3) IP=16C0H, 因为段内寻址 所以 ) 不变 (4)段间寻址,有机器码可看出 )段间寻址,有机器码可看出IP=0146H CS=3000H (5)段内寻址,所以 )段内寻址,所以CS=2000H不变 不变 DS*16+0072H+BX=61732H ,(61733H)=17H (61732H)=70H,( ) ,( ) IP=1770H (6)PA=DS*16+BX=60000H+16C0H=616C0H ) (616C0H)=46H (616C1H)=01H IP=0146H (616C2H)=00H (616C3H)=30H CS=3000H
(5)
CX, XCHG CX,[BX+32H] XCHG[BX+20H][SI], XCHG[BX+20H][SI],AX
பைடு நூலகம்
PA=DS 解:EA= BX+32H=56H, PA= *16+EA=91D0H+56H =9226H (09226H)= CX=5678H , CX=(09226H)=00F6H CX= BX+20H+SI=56H,PA=DS EA= BX+20H+SI=56H,PA= *16+EA=91D0H+56H =9226H AX=(09226H)=5678H ,(09226H) = AX=(09226H)=
AX=1234H
3.2设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=1350H, 3.2设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=1350H, SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H, SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H, (11354H)=52H,(11355H)=OE7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H, (11354H)=52H,(11355H)=OE7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H, (21351H)=51H 下列各指令都在此环境下执行,在下列各小题的空格中填入相应各指令的执行结果。 下列各指令都在此环境下执行,在下列各小题的空格中填入相应各指令的执行结果。
AX, (4) MOV AX,0150H[BP] AX=____ BP+0150H= 解:EA= BP+0150H=1350H PA=SS PA= *16+EA=20000H+1350H=21350H AX=5188H
AX=____, (5)POP AX ; AX=____,SP=____ 解:EA= SP=1350H PA=SS PA= *16+EA=20000H+1350H=21350H AX=5188H, SP=1350H+2H=1352H (6)ADD[SI], (6)ADD[SI],CX (11354H)=____,(11355H)=____, (11354H)=____,(11355H)=____,SF=____ ZF=____, PF=____, CF=____, ZF=____, PF=____, CF=____, OF=____ 解:EA=SI=1354H, PA=DS*16+EA=10000H+1354H=11354H (11354H)=52H, CX=339AH, (11354H)=52H,(11355H)=OE7H 0E752H+339AH=11AECH0E752H+339AH=11AECH->(11355H): (11354H) (11354H) =0ECH, (11355H)= 1AH
第三章习题讲评
3.1 已知DS=091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H SI=0012H,DI=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。 在以上给出的环境下,试问下列指令或指令段执行后的结果如何?
(11354H) =0ECH, (11355H)= 1AH CF=1,ZF=0, PF(低八位奇偶校验 低八位奇偶校验) PF(低八位奇偶校验):0ECH= 11101100B PF=0 SF(最高位状态 最高位状态) SF(最高位状态),1H=0001B SF=0 OF(溢出标志 溢出标志) OF(溢出标志) 0E752H= 0E752H=1110011101010010B 339AH=11001110011010B 1110011101010010 1110011101010010 + 11001110011010 10001101011101100