微机原理第3章习题(1)
微机原理与接口技术 张颖超 叶彦斐 第3章 习题答案

MULCL
MOVCX, AX
MOVAL, CL
MOVAH, 0
MULCX
13.假设DX:AX中存放一个双字的数据:
NEG DX
NEG AX
SBB DX,0
请问:
(1)上述程序段完成什么功能?
(2)设执行前,DX=0001H,AX=FFFFH,上述程序段执行后,DX、AX的值是什么?
(1)清累加器AX;
(2)清进位标志位
(3)将累加器内容乘以2(不考虑溢出)
(4)将累加器内容除以2(不考虑余数)
答:
(1) a.XORAX, AX
b.SUBAX, AX
c.ANDAX,0
d.MOVAX,0
(2) a.SUBAX, AX
b.ANDAX, AX
c.ORAX, AX
d.XORAX, AX
(7)检查BX中的第2、6、10和12位是否同时为0。
答:
(1) ANDDL, 0FCH;1111 1100B
(2)ORSI, 0E000H;1110 0000 0000 0000B
(3)ANDAX, 0FFF0H;1111 1111 1111 0000B
ORAX, 0380H; 0000 0011 1000 0000B
(1) IN AL, PORT; AL=
(2) IN AL, 40H;AX=
(3) OUTDX,AL; (DX)=
(4) OUT DX, AX; (DX)=
答:
(1)AL=22H
(2) IN AX, 40H; AX=226EH
(3) OUTDX,AL; (DX)=6EH
(4) OUT DX, AX; (DX)=226EH
16。32位微机原理、汇编语言及接口技术(第二版)第三章课后习题答案。

第3章3.1:汇编语言有什么特点解:汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数,可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序3.2编写汇编语言源程序时,一般的组成原则是什么?解:(1)完整的汇编语言源程序由段组成(2)一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列(3)需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点(4)所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内(5)通常,程序还需要一个堆栈段3.3 MODEL伪指令是简化段定义源程序格式中必不可少的语句,它设计了哪7种存储模式?各用于创建什么性质的程序?解:3.4如何规定一个程序执行的开始位置,主程序执行结束应该如何返回DOS,源程序在何处停止汇编过程?解:开始位置:用标号指明返回DOS:利用DOS功能调用的4CH子功能来实现汇编停止:执行到一条END伪指令时,停止汇编3.5逻辑段具有哪些属性?解:段定位、段组合和段类型。
3.6给出采用一个源程序格式书写的例题3.1源程序例题3.1:创建一个在屏幕上显示一段信息的程序……解:stack segment stackdb 1024(0)stack endsdata segmentstring db 'Hello,Assembly!',0dH,0aH,‘$’data endscode segment 'code'assume cs:code,ds:data,ss:stackstart: mov dx,offset stringmov ah,9int 21hcode endsend start3.7DOS支持哪两种可执行程序结构,编写这两种程序时需要注意什么?解:(1). EXE程序程序可以有多个代码段和多个数据段,程序长度可以超过64KB通常生成EXE结构的可执行程序(2). COM程序只有一个逻辑段,程序长度不超过64KB需要满足一定条件才能生成COM结构的可执行程序(MASM 6.x需要采用TINY模式)3.8举例说明等价“EUQ”伪指令和等号“=”伪指令的用途解:符号定义伪指令有“等价EQU”和“等号=”:符号名 EQU 数值表达式符号名 EQU <字符串>符号名=数值表达式EQU用于数值等价时不能重复定义符号名,但“=”允许有重复赋值。
微机原理第三章课后习题解答

3.1已知DS=091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H,SI=0012H,DI=0032H,(09226H)=00F6H,(09228H)=1E40H ,(1E4F6H)=091DH。
在以上给出的环境下,试问下列指令段之行后的结果如何?(1)MOV CL,[BX+20H][SI];物理地址=DS*10H+BX+SI+20H=091D0H+0024H+0012H+0020H=09226H(09226H)=00F6H,(09226H)=F6H, (09227H)=00H执行后:CL=F6H(2)MOV [BP][DI], CX物理地址=SS*10H+BP+DI=1E4A0H +0024H+0032H=1E4F6HCX=5678H 执行后:(1E4F6H) = 5678H(3)LEA BX, [BX+20H][SI];BX=BX+20H+SI=0056HMOV AX, [BX+2];物理地址=DS*10H+BX+2=091D0H +0058H=09228H (09228H)=1E40H 执行后:AX=1E40H(4)LDS SI, [BX][DI];物理地址=DS*10H+BX+DI=091D0H +0056H=09226H (09226H)=00F6H (09228H)=1E40H执行后:BX=(09226H)=00F6HDS=(09228H)=1E40HMOV [SI],BX物理地址=DS*10H+SI =1E400H +0012H=1E412HBX=0024H, 执行后:(1E412H)=0024H (5)XCHG CX,[BX+32H]物理地址=DS*10H+BX+32H =091D0H +0056H =09226H (09226H)=00F6H , CX=5678H执行后:(09226H)=5678H , CX=00F6HXCHG [BX+20H][SI], AX物理地址=DS*10H+BX+20H+SI =091D0H +0056H =09226H (09226H)=5678H , AX=1234H执行后:(09226H)=1234H , CX=5678H3.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,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H。
微机原理与接口技术 张颖超 叶彦斐 第3章 习题解答

习题1.指出下列指令中操作数的寻址方式(1) MOV BX, 20H (2) MOV AX, [1245H](3) MOV DX, [SI] (4) MOV 100[BX], AL(5) MOV [BP][SI], AX (6) MOV [BX+100][SI], AX(7) MOV [1800H], AL (8) MOV [SI], AX答:源操作数目的操作数1 立即寻址寄存器寻址2 直接寻址寄存器寻址3 寄存器间接寻址寄存器寻址4 寄存器寻址寄存器相对寻址5 寄存器寻址基址加变址寻址6 寄存器寻址相对基址加变址寻址7 寄存器寻址直接寻址8 寄存器寻址寄存器间接寻址2. 判断下列操作数寻址方式的正确性,对正确的指出其寻址方式,错误的说明其错误原因:(1) [AX] (2) [SI+DI](3) BP (4) BH(5) DS (6) [BL+44](7) [BX+BP+32] (8) [DX](9) [CX+90] (10) [BX*4](11) BX+90H (12) SI[100H]答:(1) 错误,AX不能用于访问内存单元(2) 错误,两个变址寄存器SI和DI不能同时用于内存单元的有效地址(3) 正确,寄存器寻址方式(4) 正确,寄存器寻址方式(5) 正确,寄存器寻址方式(6) 错误,寄存器BL不能用于表示内存单元的有效地址(7) 错误,BX和BP都是基址寄存器,不能同时用于内存单元的有效地址(8) 错误,DX不能用于表示内存单元的有效地址(9) 错误,CX不能用于表示内存单元的有效地址(10)错误,16位寄存器不能乘以比例因子(11) 错误,没有这样的寻址方式(12) 错误,书写方式不对,应该写成100H[SI]3. 已知DS=2000H,ES=1000H,SS=1010H,SI=1100H,BX=0500H,BP=0200H,请指出下列源操作数字段是什么寻址方式?源操作数字段的物理地址是多少?(1) MOV AL, [2500H](2) MOV AX, [BP](3) MOV AX, ES:[BP+10](4) MOV AL, [BX+SI+20]答:(1)源操作数属于直接寻址,物理地址=DS⨯16+2500H=20000H+2500H=22500H;(2)源操作数属于寄存器间接寻址,物理地址=SS⨯16+(BP)=10100H+0200H=10300H(3)源操作数属于寄存器相对寻址,物理地址=ES⨯16+(BP)+100=10000H+0200H+0AH=1020AH(4)源操作数属于基址加变址寻址,物理地址=DS⨯16+(BX)+(SI)+20=20000H+0500H+1100H+14H=21614H4. 判断下列指令的对错,如果错误请说明原因。
微机原理第三章习题答案

习题3答案1. 指出下列指令的错误原因。
(1) AND AX, DL ;类型不匹配(2) ADD CS, DX ;CS不能作为目的操作数(3) MOV AX, IP ;IP不能作为指令的操作数(4) MOV [BP][SI], [SI] ;两个操作数不能同时为内存操作数(5) SUB [BP][SI], ES:DX ;段超越前缀只能用在内存操作数之前(6) XCHG AL, [SI][DI] ;没有[SI][DI]这种操作数形式(7) JGE AX ;条件转移指令的操作数只能是标号(8) PUSH DL ;对堆栈不能进行字节操作2. 用一条指令将BX清0。
(请给出3种方法)方法1:MOV BX, 0方法2:SUB BX, BX方法3:AND BX, 0 ;将BX和0做与,可以将BX清零方法4:XOR BX, BX3. 写出实现下列功能的指令序列。
(1) 判断AX的值,若AX等于0,则转到标号LABEL处。
(请写出3种方法)方法1:CMP AX, 0JZ LABEL ; 如果ZF = 0,说明AX为0,因为CMP指令是做减法,但是不写回结果; 因此指令执行后AX内容不会受到破坏方法2:TEST AX, 0FFHJZ LABEL ; 如果ZF = 0,说明AX为0,TEST指令做与运算,可是不写回结果,只影响标志位。
; 和0与清零,和1与不变,所以和FFH做与的结果是AX本身,但是此时标志位已; 经改变了,所以可以利用标志位来判断,但是AX内容却没有受到任何破坏方法3:AND AX, 0FFH ;这个方法的原理和方法2其实是完全一致的JZ LABEL(2) 将AL的高4位与低4位分别放入AH与AL的低4位,并将AH与AL的高4位清0。
MOV AH, ALAND AL, 0FH ; AL高4位通过与清零,而低4位保持不变MOV CL, 4SHR AH, CL ; 这两条指令通过逻辑右移将AH的高4位清零,因为SHR在右移后,高位补零(3) 若AX和BX中的数恰好1个是奇数、1个是偶数,则将奇数放入AX,偶数放入BX;否则,AX和BX不变。
南邮 微机原理(微型计算机与接口技术)第3章习题解答

解:先将物理地址写成逻辑地址 源逻辑地址为 1000H:2345H 目的逻辑地址为 2000H:3456H MOV AX,1000H ;设置DS段寄存器 MOV DS, AX MOV AX, 2000H ;设置ES段寄存器 MOV ES, AX MOV SI, 2345H ;设置源偏移地址 MOV DI, 3456H ;设置目的偏移地址 MOV CX, 1024 ;设置长度值 CLD ;设置地址为增量方向 REP MOVSB ;重复传送指令
第3章习题解答
3.5 (1)方法1 MOV AX,WORD PTR FIRST MOV BX,WORD PTR SECOND MOV WORD PTR FIRST,BX MOV WORD PTR SECOND,AX 注意: PTR用于临时修改属性,常用方法是 在存储器操作数之前使用。 例如: WOR PTR FIRST WORD PTR [BX] BYTE PTR [SI+BX]
;移位次数=8 ;含进位的循环左移一位 ;含进位的循环右移一位 ;移位次数有无达到8次 ;有无达到8次,没有转L1 ;将结果传送到AL
3.10 第1小题的框图
置源数据区指针 置正数缓冲区指针 置负数缓冲区指针 置数据长度
从源缓冲区 取一个数
Y
=0吗?
N
N
是正数吗?
Y
传送到负数缓冲区 传送到正数缓冲区 负数缓冲区指针加1 正数缓冲区指针加1 源数据区指针加1 数据长度减1
S1: CMP BYTE PTR [BX],0 ;与0比较 JZ COM ;=0 准备取下一个数判断 JL M1 ;为负数转到M1处理 MOV AL,[BX] ;取数 MOV [SI],AL ;将正数存入PLUS缓冲区 INC SI ;修改正数缓冲区地址指针 JMP COM ;转到长度计数部分 M1: MOV AL,[BX] ;取数 MOV [DI], AL ;将负数存入MINUS缓冲区 INC DI ;修改负数缓冲区地址指针 COM: INC BX ;修改源数据地址指针 LOOP S1 ;数据长度减1,并判断 HLT ;结束
(完整版)微机原理第三章(1)及答案

第三章习题集二.选择题(每小题1分,共15分)1. 逻辑地址1000:2000对应的物理地址为( B )。
A、1200HB、12000HC、2100HD、21000H2. 下面哪个寄存器使用时的默认段寄存器为SS( C )。
A、AXB、BXC、SPD、SI3. 当使用BP寄存器作基址寻址时,若无指定段替换,则内定在( B )段内寻址。
A.程序B.堆栈C.数据D.附加4.在下面四组寄存器中,第 D 组都可用于对存储器间接寻址方式的寄存器。
A. AX,BX,CX,IP;B. BX,SP,DX,SIC. IP,SP,BP,AXD. BP,BX,SI,DI5. 含有立即数的指令中,该立即数被存放在 A 。
A. 累加器中B. 指令操作码后的内存单元中C. 指令操作码前的内存单元中D. 由该立即数所指定的内存单元中6. 用段基值及偏移量来指明内存单元地址的方式称为( C )。
A、有效地址B、物理地址C、逻辑地址D、相对地址7. 已知物理地址为0FFFF0H,且段内偏移量为0B800H,若对应的段基地址放在DS中,则DS=( B )。
A、0FFFFHB、0F47FHC、2032HD、0F000H8. 含有立即数的指令中,该立即数被存放在 B 。
A. 累加器中B. 指令操作码后的内存单元中C. 指令操作码前的内存单元中D. 由该立即数所指定的内存单元中9.寄存器间接寻址方式中,操作数在 C 中。
A. 通用寄存器B. 堆栈C. 存储单元D. 段寄存器10.下列指令中,有语法错误的指令是(B D)。
A. MOV AX,[1000H]B. LEA AL,1000HC. MOV [1000H],ALD. MOV 1000H,AX11. 下列指令语法有错的是:CA. MOV AX,1000HB. MOV AX,BXC. MOV [AX],[1000H]D. MOV AX,[1000H]12. 8086/8088中除___C___两种寻址方式外,其它各种寻址方式的操作数均在存储器中。
微机原理与接口技术张颖超叶彦斐第3章习题答案

习题1.指出下列指令中操作数的寻址方式(1) MOV BX, 20H (2) MOV AX, [1245H](3) MOV DX, [SI] (4) MOV 100[BX], AL(5) MOV [BP][SI], AX (6) MOV [BX+100][SI], AX(7) MOV [1800H], AL (8) MOV [SI], AX答:源操作数目的操作数1 立即寻址寄存器寻址2 直接寻址寄存器寻址3 寄存器间接寻址寄存器寻址4 寄存器寻址寄存器相对寻址5 寄存器寻址基址加变址寻址6 寄存器寻址相对基址加变址寻址7 寄存器寻址直接寻址8 寄存器寻址寄存器间接寻址2. 判断下列操作数寻址方式的正确性,对正确的指出其寻址方式,错误的说明其错误原因:(1) [AX] (2) [SI+DI](3) BP (4) BH(5) DS (6) [BL+44](7) [BX+BP+32] (8) [DX](9) [CX+90] (10) [BX*4](11) BX+90H (12) SI[100H]答:(1) 错误,AX不能用于访问内存单元(2) 错误,两个变址寄存器SI和DI不能同时用于内存单元的有效地址(3) 正确,寄存器寻址方式(4) 正确,寄存器寻址方式(5) 正确,寄存器寻址方式(6) 错误,寄存器BL不能用于表示内存单元的有效地址(7) 错误,BX和BP都是基址寄存器,不能同时用于内存单元的有效地址(8) 错误,DX不能用于表示内存单元的有效地址(9) 错误,CX不能用于表示内存单元的有效地址(10)错误,16位寄存器不能乘以比例因子(11) 错误,没有这样的寻址方式(12) 错误,书写方式不对,应该写成100H[SI]3. 已知DS=2000H,ES=1000H,SS=1010H,SI=1100H,BX=0500H,BP=0200H,请指出下列源操作数字段是什么寻址方式?源操作数字段的物理地址是多少?(1) MOV AL, [2500H](2) MOV AX, [BP](3) MOV AX, ES:[BP+10](4) MOV AL, [BX+SI+20]答:(1)源操作数属于直接寻址,物理地址=DS⨯16+2500H=20000H+2500H=22500H;(2)源操作数属于寄存器间接寻址,物理地址=SS⨯16+(BP)=10100H+0200H=10300H(3)源操作数属于寄存器相对寻址,物理地址=ES⨯16+(BP)+100=10000H+0200H+0AH=1020AH(4)源操作数属于基址加变址寻址,物理地址=DS⨯16+(BX)+(SI)+20=20000H+0500H+1100H+14H=21614H4. 判断下列指令的对错,如果错误请说明原因。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 3.7已知(AL)=7BH,( )=38H,试问执 . 已知 已知( ) ,(BL) ,( , 行指令ADD AL,BL后,AF、CF、OF、PF、 行指令 , 后 、 、 、 、 SF和ZF的值各为多少? 的值各为多少? 和 的值各为多少 解: (AL)=B3H ) AF=1,CF=0,OF=1, , , , PF=0,SF=1,ZF=0 , , • 3.8试比较无条件转移指令、条件转移指令、调 . 试比较无条件转移指令 条件转移指令、 试比较无条件转移指令、 用指令和中断指令有什么异同?( ?(略 用指令和中断指令有什么异同?(略)
(6)MOV DATA[SI],ES:AX ) , : 源操作数形式错, 源操作数形式错,寄存器操作数不加段重设符 (7)JMP BYTE PTR[BX] ) 转移地址的字长至少应是16位 转移地址的字长至少应是 位 (8)OUT 230H,AX ) , 指令, 对I/O指令,端口地址超过 位,必须采用间接寻址 指令 端口地址超过8位 (9)MOV DS,BP ) , 正确 (10)MUL 39H ) MUL指令中操作数不能为立即数 指令中操作数不能为立即数
• 3.10按下列要求写出相应的指令或程序段 . 按下列要求写出相应的指令或程序段 内容为0的指令 (1)写出两条使 内容为 的指令; )写出两条使AX内容为 的指令; MOV AX,0 , XOR AX,AX , AND AX,0 , SUB AX,AX , 寄存器中的高4位和低 位互换; (2)使BL寄存器中的高 位和低 位互换; ) 寄存器中的高 位和低4位互换 MOV CL,4 CL, ROL BL,CL , 或 ROR BL,CL , (3)屏蔽CX寄存器的 )屏蔽 寄存器的b11、b7和b3位; 、 和 位 寄存器的 AND CX,0F777H , 中的b0和 位是否为 位是否为1。 (4)测试 中的 和b8位是否为 。 )测试DX中的 TEST DX,0101H ,
PA=(ES)× 10H+( )= ( ) +(BX)= +( )=20800H
(7)寄存器间接寻址 )
PA=(SS)× 10H+( )=16200H ( ) +(BP)= +( )=
(8)寄存器相对寻址 )
PA=(DS) × 10H+( )+ ( ) +(BX)+ +( )+20H=60820H =
第三章 习题
• 3.1什么叫寻址方式?8086/8088CPU共有哪几种寻址方 . 什么叫寻址方式 什么叫寻址方式? 共有哪几种寻址方 ?(略 式?(略) • 3.2设(DS)=6000H,( )=2000H,( ) . 设 ,(ES) ,(SS) ) ,( ,( =1500H,( )=00A0H,( )=0800H,( ) ,(SI) ,(BX) ,(BP) ,( ,( ,( =1200H,数据变量 ,数据变量VAR为0050H。 为 。 请分别指出下列各条指令源操作数的寻址方式? 请分别指出下列各条指令源操作数的寻址方式?它的物理 地址是多少? 地址是多少? (1)MOV AX,BX ) , (3)MOV AX,VAR ) , (4)MOV AX,VAR[BX][SI] ) , (5)MOV AL,‘B’ ) , (6)MOV DI,ES:[BX] ) , : (7)MOV DX,[BP] ) , (8)MOV BX,20H[BX] ) , (2)MOV DL,80H ) ,
• 3.13将+46和-38分别乘以 ,可应用什么 . 将 分别乘以2, 和 分别乘以 指令来完成?如果除以2呢 指令来完成?如果除以 呢? 解: 分别乘以2, ①将+46和-38分别乘以 ,可分别用逻辑左移 和 分别乘以 指令SHL和算术左移指令 和算术左移指令SAL完成。SHL 完成。 指令 和算术左移指令 完成 针对无符号数,SAL针对有符号数,也可 针对无符号数, 针对有符号数, 针对有符号数 用MUL(无符号数)和IMUL(有符号数) (无符号数) (有符号数) 除以2, 实现+ ②除以 ,用SHR或DIV实现+46/2,用SAR 或 实现 , 实现- 或IDIV实现-38/2。 实现 。
• 3.11分别指出以下两个程序段的功能。 . 分别指出以下两个程序段的功能 分别指出以下两个程序段的功能。
(1)MOV CX,10 ) , LEA SI,FIRST , LEA DI,SECOND , STD REP MOVSB 将数据段中FIRST为最 为最 将数据段中 高地址的10个字节数据 高地址的 个字节数据 按减地址方向传送到附 加段SECOND为最高地 加段 为最高地 址的向前10个单元中 个单元中。 址的向前 个单元中。 (2)CLD ) LEA DI,[1200H] , MOV CX,0F00H , XOR AX,AX , REP STOSW 将附加段中偏移地址 为1200H单元开始的 单元开始的 0F00H个字单元清零。 个字单元清零。 个字单元清零
• 3.6指出下列指令的错误。 指出下列指令的错误。 . 指出下列指令的错误 (1)MOV AH,CX ) , 类型不匹配或两操作数字长不相等 (2)MOV 33H,AL ) , 立即数不能做目的操作数 (3)MOV AX,[SI][DI] ) , 两变址寄存器不能同时使用 (4)MOV [BX],[SI] ) , 两操作数不能同时为存储器操作数 (5)ADD BYTE PTR[BP],256 ) , 两操作数类型不匹配
• 3.9试判断下列程序执行后,BX中的内容。 . 试判断下列程序执行后 试判断下列程序执行后, 中的内容 中的内容。 MOV CL,3 , MOV BX,0B7H , ROL BX,1 , ROR BX,CL , 内容不带进位循环左移1位 解:该程序是首先将BX内容不带进位循环左移 位, 该程序是首先将 内容不带进位循环左移 右移3位 即相当于将BX内容不带进位循 再循环 右移 位,即相当于将 内容不带进位循 环右移2位 环右移 位, 所以结果为( ) 所以结果为(BX)=C02DH
• 3.3假设(DS)=212AH,( )=0200H, . 假设 假设( ) ,(CS) ,( , ,(BX) (IP)=1200H,( )=0500H, ) ,( , 位移量DATA=40H 位移量 ,(217E0H)=0400H, (217A0H)=2300H,( ) ,( ) , (217E2H)=9000H, ) , 试确定下列转移指令的转移地址。 试确定下列转移指令的转移地址。
• 3.16写出完成下述功能的程序段。 写出完成下述功能的程序段。 . 写出完成下述功能的程序段 中传送一个数据56H到AL寄 (1)从地址 :0012H中传送一个数据 )从地址DS: 中传送一个数据 到 寄 存器。 存器。 MOV DS:BYTE PTR[0012H],56H : , MOV AL,[0012H] , 中的内容左移两位。 (2)将AL中的内容左移两位。 ) 中的内容左移两位 MOV CL,2 , SHL AL,CL , 的内容与字节单元DS: 中的内容相乘。 (3)AL的内容与字节单元 :0013H中的内容相乘。 ) 的内容与字节单元 中的内容相乘 MUL DS:BYTE PTR[0013H] : (4)乘积存入字单元 :0014H中。 )乘积存入字单元DS: 中 MOV DS:[0014H],AX : ,
解: (1)寄存器寻址 ) 无物理地址 (2)立即寻址 ) 无物理地址 (3)立即寻址 ) 无物理地址 (4)基址-变址-相对寻址 )基址-变址-
PA=(DS)×10H+VAR+( )+( )= ( ) +(BX)+( )=608F0H + +( )+(SI)=
(5)立即寻址 ) 无物理地址 (6)寄存器间接寻址 )
• 3.14已知 . 已知 已知AX=8060H,DX=03F8H,端口 , ,端口PORT1 的地址是48H,内容为 的地址是84H, 的地址是 ,内容为40H;PORT2的地址是 ; 的地址是 , 内容为85H。请指出下列指令执行后的结果。 内容为 。请指出下列指令执行后的结果。 (1)OUT DX,AL ) , 输出到地址为03F8H的端口中 将60H输出到地址为 输出到地址为 的端口中 (2)IN AL,PORT1 ) , 读入一字节数据, )=40H 从PORT1读入一字节数据,则(AL)= 读入一字节数据 )= (3)OUT DX,AX ) , 从地址为03F8H的端口输出 将AX=8060H从地址为 = 从地址为 的端口输出 (4)IN AX,48H ) , 端口读入16位的数据 由48H端口读入 位的数据 端口读入 (5)OUT PORT2,AX ) , 从地址为84H的端口输出 将8060H从地址为 从地址为 的端口输出
• 3.12执行以下两条指令后,标志寄存器 . 执行以下两条指令后 标志寄存器FLAGS 执行以下两条指令后, 的六个状态位各为什么状态? 的六个状态位各为什么状态? MOV AX,84A0H , ADD A加法运算时 位数进行加法运算时, 在两个 位数进行加法运算时,对CF、ZF、SF、 、 、 、 OF会产生影响,但对 和AF标志位,只有其低 会产生影响, 标志位, 会产生影响 但对PF和 标志位 只有其低8 位运算影响它们的状态。 位运算影响它们的状态。 AF=0,PF=1,CF=1, , , , ZF=0,SF=0,OF=1 , ,
• 3.4试说明指令 . 试说明指令 试说明指令MOV BX,5[BX]与指令 与指令LEA BX,5[BX] , 与指令 , 的区别。 的区别。 答: 是数据传送类指令, ①MOV BX,5[BX]是数据传送类指令,表示将数据段中以 , 是数据传送类指令 位数据送寄存器BX中 (BX+5)为偏移地址的 位数据送寄存器 中。 )为偏移地址的16位数据送寄存器 是取偏移地址指令, ② LEA BX,5[BX]是取偏移地址指令,结果为 , 是取偏移地址指令 (BX)=(BX)+5,即操作数的偏移地址为(BX)+5 ) ( ) ,即操作数的偏移地址为( ) • 3.5设堆栈指针 的初值为 设堆栈指针SP的初值为 ,(AX) . 设堆栈指针 的初值为2300H,( )=50ABH, ,( , (BX)=1234H。执行指令 ) 。执行指令PUSH AX后,( )=?, 后,(SP) ?, 再执行指令PUSH BX及POP AX之后,(SP)=?( ) 再执行指令 及 之后,( ) ?(AX) 之后,( ?( =?( )=? ?(BX) ? ?( 执行指令PUSH AX后,( )=22FEH 解:执行指令 后,(SP) 执行指令PUSH BX及POP AX之后, 之后, 执行指令 及 之后 ,(AX) ( ) (SP)=22FEH,( )=(BX)=1234H ) ,(