


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理第七章答案7.3 设 AX=1122,BX=3344H,CX=5566H,SS=095BH,SP=004下述程序执行后 AX,BX CX DX 4个通用寄存器内容是多少?画出堆栈存储器的物理地址及存储内 容和SP指向的示意图。PUSH AXPUSH BXPUSH CXPOP BXPOP AXPOP DX参考答案:(BX)=5566H, (AX)=3344H, (DX)=1122H,(CX)=5566H 堆栈段物理地址=SS*16(左移4位)+SPSi7.4设SP=0040H,如果用进栈指令存入5个数据,则SP=0036H ,若用出栈指 令取出两个数据,则SP=003AH。7.5将表中程
2、序段各指令执行后AX的值用十六进制数填入表中 参考答案:程序段AX程序段AXMOV AX,00OR AX,3FDFHBFDFHDEC AXFFFFHAND AX,0EBEDHABCDHADD AX,7FFFH7FFEHXCHG AH,ALCDABHADC AX,18000HSAL AX,19B56HNEG AX8000HRCL AX,136ADH7.6用十六进制数填下表,已知DS=1000H,ES=2000H,SS=0FC0通用寄存器的值为0。参考答案:逻辑地址=段基址:段内偏移地址BP以SS为默认段基址,其余寄存器以 DS为默认段基址ES:为段前缀,以ES为段基址指令存储器操作数逻辑地址SU
3、B BP,AL0FC0H:0000HMOV BX,BH1000H:0000HMOV DI,DL1000H:0000HMOV ES:SI,BL2000H:0000HADD 500HBP,AH0FC0H:0500HSUB SI-300H,AL1000H:FD00HMOV 1000HDI,DL1000H:1000HMOV BX-8,CL1000H:FFF8HMOV ES:1000HDI,CH2000H:1000HMOV BP+SI,DH0FC0H:0000HMOV BX+DI,DL1000H:0000H7.7试给出执行完下列指令后 OF SF、ZF、CF4个可测试标志位的状态(用十六进制给出FLAG
4、的值,其余各位为0)(1)MOV AX,2345H(2) MOV BX,5439HADD AX,3219HADD BX,456AH(3)MOV CX,3579HSUB CX,4EC1H(4) MOV DX,9D82HSUB DX,4B5FHOFDFIFTFSFZF0AF0PF0CF溢 岀方 向中 断陷 阱符号为零辅进奇 偶进位参考答案:(这里除了上面4个标志还考虑了奇偶标志 PF和辅助进位标志AF)(1)AX=555EH FLAG=0000HOFDFIFTFSFZF0AF0PF0CF0000000000000000(2) BX=99A3H FLAG=0894HOFDFIFTFSFZF0AF0P
5、F0CF0000100010010100(3) CX=E6B8 FLAG=0081HOFDFIFTFSFZF0AF0PF0CF0000000010000001(4) DX=5223 FLAG=0014HOFDFIFTFSFZFAFPF0CF00000000000101007.8 AX中有一负数,欲求其绝对值,若该数为补码,则使用指令NEG AX ;若为原码则用指令AND AX 7FFFH。7.9分别写出实现如下功能的程序段:(1)将AX中间8位(做高8位),BX低4位和DX高4位(做低4位)拼成一 个新字。(注意:左移右移操作)AND AX OFFOHMOV CL,04HSHL AX CLAN
6、D BL,0FHAND DH,0F0HSHR DH,CLSHL BL,CLOR AL,DHOR AL,BL(2)将CX中间8位取反,其余位不变XOR CX 0FF0H(3)将数据段以BX为偏移地址的连续3单元中的无符号数求和。MOVCX 3MOVAL 0LAB ADD AL BXADC AH,00H (注意字节单元的和可能超过一个字节,故这里和扩展至AHINC BXLOOP LAB(4)将数据段中以BX为偏移地址的连续4单元中的内容颠倒过来MOV CX,2 ;(4/2 单元个数除2,循环计数)MOV S,BXADD SI ,3 ;(指向最后一个数据单元,首地址 +单元个数-1)LAB MOV
7、AL,BXXCHG AL SIMOV BX,ALINC BXDEC SILOOP LAB 将BX中的4位压缩BCD数用非压缩数形式按序放在 AL,BL,CL和DL中 MOV CL 4 (注意先后次序,不能用其它寄存器)MOVDL , BLAND DL,0FHMOV AL,BHSHR AL,CLXCHG BH,BLAND BL,0FHSHR BH,CLMOV CL,BH(6) 不用乘法指令实现AL (无符号数)乘以20 AL*(24+F)( 2 4左移4位,22左移2位)MOVAH 0MOV CL 2SAL AX ,CL ;进行乘4操作MOV BX,AX ;保留乘4中间结果SAL AX ,CL;
8、再移2次,相当于乘16ADD AX ,BX7.10 一段数据定义为:DATA SEGMENT51 DB 0,1,2,3,4,552 DB 12345COUNT=$-S1NB DB 3DUP(2)NW DW 120,-256P DW -1DATA ENDS(1)画出该数据段数据存储形式(注意:符号常量COUNTS分配存储单元)地址内容S1 -0000Hn00H0001H01H0002H02H0003H彳03H0004H04H0005H05HS2 -0006H31H0007H32H0008H33H0009H34H000AH35HNB -000BH02H000CH02H000DH02HNW -000
9、EH78H000FH00H0010HAAH0011HFDHP -0012HFFH0013HFFH(2)在下表中填写各变量的偏移地址和各变量的值变量名偏移地址变量值变量名偏移地址变量值S1:0000H00HNW000EH0078HS20006H31HP0012HFFFFHNB000BH02H程序段目的寄存器的值源操作数的寻址方式MOV BX OFFSET S1+30003H立即寻址MOV S,OFFSET S20006H立即寻址MOV CL COUNT000BH立即寻址MOV BP,NW+2FDAAH:直接寻址MOV DX WORD PTR NB0202H直接寻址MOV AL,SI+334H变址
10、寻址MOV AH,SI+BX+135Hr基址变址寻址MOV CH BYTE PTR NW+3FDH直接寻址(3)填写表中程序段各指令执行后。目的寄存器的值,并指出源操作数所使用的 寻址方式(注意:COUN是符号常量是立即数)改正(4)改正下列不正确的指令错误a. MOV AX,S1MOV SI, +MOV BYTE PTR SI, +d. MOV DL,NW+2改正 MOV DL, BYTE PTR NW+2e. MOV DI,CH改正 MOV DI,CXf. MOV BX, OFFSET S1改正 MOV BX, OFFSET S1MOV DH,BX+3MOV DH BX+3g. INC COUNT改正 MOV BX, COUNT INC BX (符号常数不能加1)h. MOV NB,S2改正 MOV AL,S2 MOV NB,AL (两个内存变量不能直接传送)i. MOV AX,BX+S1改正
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论