ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:36.64KB ,
资源ID:11225853      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11225853.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(大连理工大学 计算机原理 习题3答案.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

大连理工大学 计算机原理 习题3答案.docx

1、大连理工大学 计算机原理 习题3答案习题3:1、8086系统中,请说明下列指令的源操作数的寻址方式是什么?1)MOV AX, 1234H 立即寻址2)MOV AX, 1234H 直接寻址3)MOV AX, BX 间接寻址 4)MOV AX, 1234HBX + SI 相对基址变址寻址5)MOVSB 数据串寻址6)IN AL, DX 间接端口寻址2、请在下表中画出下列数据段以十六进制表示的各单元值(表格中每个单元表示一个字节),并写出变量var1, var2, var3的偏移地址和cnt的值。data SEGMENT para ORG 30Hvar1 DB -2, A, 2 dup(23)var

2、2 DW -1cnt EQU $-var1var3 DW var2data ENDS答:var1:0030,var2:0036,var3:0038,cnt=8.3、以下程序实现将变量var进行var*10+600的操作,并将计算结果保存在变量result中,当程序执行 到地址M5的时候,请在以下表格中画出当前堆栈指针的位置和堆栈里的内容(程序断点可以用标号,在堆栈中可用寄存器名代表保存的内容,SS的内容不用指定,表格的每个单元表示一个字)。(6分)data segment var dw 1000 result dd ?data endsss_seg segment stack db 100 d

3、up(?) ss_seg ends code segment assume cs:code, ds:data, ss:ss_seg main proc far push ds mov ax, 0 push ax mov ax, data mov ds, ax mov ax, var M1: call Caculate M2: dw 10 M3: dw 600 M4: lea bx, result mov bx, ax mov bx+2, dx ret main endpCaculate proc push bpmov bp, sppush sipush bxmov bx, bp+2mov si

4、, cs:bxmul siM5: add ax, cs:2bxadd bx, 4mov bp+2, bxpop bxpop sipop bpretCaculate endpcode endsend main答:如下图,此时栈顶指针指向比bx所在单元地址小1的堆栈单元。4、问答题1)若AL = 81H,则执行指令CBW后AH的内容为多少?答:AH的内容为FFH.2)若BL = BEH,执行下列指令序列,则每执行一步,BL和CF的值为多少?SHL BL, 1 ;BL = _7CH_, CF = _1_MOV CL, 2SHR BL, CL ; BL = _1FH_, CF = _0_OR BL,

5、80SAR BL, 1 ; BL = _CFH_, CF = _1_ROR BL,CL ; BL = _F3H_, CF = _1_INC CLRCL BL, CL BL = _9FH_, CF = _1_3)什么是短跳转、近跳转、远跳转?答,短跳转,是段内直接跳转,把IP的内容加上一个字节的补码数作为新的IP,跳转范围为-128127.近跳转,是段内直接跳转,把IP的内容加上一个字的补码数作为新的IP,跳转范围为-3276832767.远跳转,是段间直接跳转。4)若当前SP = 1000H,CS = B000H ,IP = 0100H,且当前FLAG = 2345H,则执行指令INT 21H

6、以后,SP的值变为多少?堆栈段中6个存储单元0FFFH、0FFEH、0FFDH、0FFCH、0FFBH、0FFAH的值分别是多少?答:SP=0FFAH,(0FFFH)=23H,(0FFEH)=45H,(0FFDH)=B0H,(0FFCH)=00H,(0FFB)=01H,(0FFA)=00H.5、请写出程序段实现下列功能例如:从160H端口读取1个字节 MOV DX, 160H IN AL, DX1)将一个8位数20H写入到地址为20H的端口;答:MOV AL, 20H OUT 20H, AL2)若AL = 56H, BL = 57H,将这两个压缩格式BCD码相加并将结果保存到存储单元2000H

7、中;答:ADD AL, BL DAA MOV 2000H, AL 3)将2个32位无符号数DAT1和DAT2相乘,结果保存在64位无符号数中,请编写程序段。 mov ax, data mov ds, ax lea si, result sub ax, ax mov si+4,ax mov si+6,ax mov ax,word ptr data1 mul word ptr data2 mov si,ax mov si+2,dx mov ax,word ptr data1+2 mul word ptr data2 add si+2,ax adc si+4,dx adc word ptr si+6

8、,0 mov ax,word ptr data2+2 mul word ptr data1 add si+2,ax adc si+4,dx adc word ptr si+6,0 mov ax,word ptr data2+2 mul word ptr data1+2 adc si+4,ax adc si+6,dx mov ax, 4c00h int 21h4)求数据段偏移地址为1000H开始的一个字符串的长度,字符串以ASCII码0为结束符,长度要求包括结束符;(提示:初始化AL = 0 CX = 0FFFFH,然后使用REPNZ SCASB命令,最后根据CX的值计算字符串长度)答:mov

9、ax, dsmov es, axmov di, 1000hmov al, 0mov cx, 0FFFFHcldrepne scasbmov ax, 0FFFFHsub ax, cxmov cx, ax6. 什么是寻址方式?8086/8088共有哪几种寻址方式?答:获得数据或者数据地址信息的方式称为寻址方式。1隐含寻址2立即寻址3寄存器寻址4直接寻址5间接寻址6基址寻址7变址寻址8基址变址寻址9相对基址变址寻址10数据串寻址11直接端口寻址12间接端口寻址13段内直接寻址14段内间接寻址15段间直接寻址16段间间接寻址7设DS=6000H, ES=2000H, SS=1500H, SI=00A0

10、H, BX=0800H, BP=1200H, 变量VAR地址为0050H. 请分别指出下列指令源操作数的寻址方式?并计算除立即寻址外的其他寻址方式下源操作数的地址。(1)MOV AX, BX (2) MOV DL, 80H (3)MOV AX, VAR(4) MOV AX, VARBXSI (5) MOV AL, B (6) MOV DI,ES:BX(7) MOV DX,BP (8) MOV BX,20HBX答:(1)寄存器寻址,无地址(2)立即寻址(3)直接寻址,物理地址为60050H(4)相对基址变址寻址,物理地址为608F0H(5)立即寻址(6)间接寻址,物理地址为20800H(7)间接

11、寻址,物理地址为16200H(8)基址寻址,物理地址为60820H8. 试说明指令MOV BX,5BX与指令LEA BX,5BX的区别。答:第一个指令是将DS段内,便偏移地址为(BX+5,BX+6)的内容传送给BX,第二个指令取地址,是把BX+5送给BX。9设堆栈指针SP的初值为2300H, AX=50ABH, BX=1234H. 执行指令PUSH AX后,SP=?,再执行指令PUSH BX及POP AX之后,SP=?AX=?BX=?答:SP=SP-2=22FEH,执行后面指令后SP=22FEH,AX=BX=1234H10. 指出下列指令的错误:(1) MOV AH,CX (2) MOV 33

12、H,AL (3) MOV AX,SIDI (4) MOV BX,SI (5) OUT 230H,AX (6) MUL 39H答:(1)两操作数字长不相等(2)立即数不能作为目的操作数(3)两个变址寄存器不能同时使用(4)不能对两个存储器操作(5)端口地址超过8位,必须用间接寻址(6)立即数不能作为mul指令的操作数。11. 已知AL=7BH,BL=38H,试问执行指令ADD AL,BL后,AF、CF、OF、PF、SF和ZF的值各为多少?答:AF=1,CF=0,OF=1,PF=0,SF=1,ZF=012试判断下列程序执行后,BX中的内容MOV CL,3MOVBX,0B7HROL BX,1ROR

13、BX,CL答:BX=C02DH13. 按下列要求写出相应的指令或程序段:(1) 写出两条使AX内容为0的指令;(2) 使BL寄存器中的高4位和低4位互换;(3) 屏蔽CX寄存器的b11、b7和b3位;(4) 测试DX中的b0和b8位是否为1。答:(1)sub ax,ax xor ax, ax (2)mov cl, 4 rol bl, cl (3)and cx, 0F777H (4)test dx, 0101H14分别指出以下两个程序段的功能:(1) MOV CX, 10 LEA SI, FIRST LEA DI,SECOND STD REP MOVSB(2) CLD LEA DI,1200H

14、MOV CX,0FF00H XOR AX,AXREP STOSW答:(1)将数据段中最高地址为first的10个字节数据按照减地址方向传送到扩展段中以second为最高地址的十个字节 (2)将扩展段中偏移地址1200H单元开始的0FF00H个字单元清零15. 已知AX=8060H, DX=03F8H, 端口PORT1的地址是48H, 内容为40H; PORT2的地址是84H, 内容是65H. 请指出下列执行后的结果。(1) OUT DX, AL (2) IN AL,PORT1 (3) OUT DX, AX (4) IN AX,48H (5) OUT PORT2,AX答:(1)将60H写入地址为

15、03F8H的端口中(2)AL=40H(3)将8060H写入地址为03F8H的端口中(4)从48H端口读入16位数据放到ax中(5)将8060H写入地址为84H的端口中16单项选择:(1) 微处理器的主要组成部件是(B)A. 运算器、存储器和内部总线;B. 运算器、控制器和存储器;C. 存储器接口、I/O接口和运算器;D.运算器、控制器和寄存器 (2) 下列指令中,CPU对其执行能够产生控制信号M/IO=0和RD=0的是(B)A. MOV 50H,AL B. MOV AL, 50H C. OUT 10H,AL D.IN AL,10H(3) 8086CPU组成的PC机数据线分别是(D)A. 8条单

16、向线 B. 16条单向线 C. 8条双向线 D. 16条双向线(4) 可用作简单输入接口的电路是(C)A. 译码器 B. 锁存器 C. 三态缓冲器 D 转换器17. 多项选择:(1) 在8086CPU的下列寄存器中,可用作寄存器间接寻址的有(ACDE)A. SI B. CX C. BX D. BP E. DI(2) 设SP=50H, 执行指令RET 0004H后,寄存器SP的内容是(E)A. 54H B. 50H C. 4EH D. 4CH E.58H18. 简答题:1)无符号数比较指令有哪些?如何通过标志位进行判断的?答:JB/JNAE/JC ;CF=1;小于/不大于转移JNB/JAE/JC

17、 ;CF=0;高于等于/不高于转移JBE short_label;小于等于转移JNA short_label;不大于转移:测试条件:CF|ZF=1JNBE short_label;不小于等于 ;转移JA short_label;大于转移:测试条件:CF|ZF=02)有符号数比较指令有哪些?如何通过标志位进行判断的?答:JL short_label;小于转移JNGE short_label;不大于等于转移:测试条件:SFOF=1JNL short_label;不小于转移JGE short_label; 大于等于转移:测试条件:SFOF=0JNLE short_label;不小于等于转移JG sh

18、ort_label; 大于转移:测试条件:(SFOF)|ZF=0JLE short_label; 小于等于转移JNG short_label;不大于转移:测试条件:(SFOF)|ZF=13)试述传送类指令有哪些?简述lea、lds、les、Xlat指令的功能?答:mov ,push, pop, xchg ,in, out, xlat, lea, lds, les, lahf, sahf, pushf, popfLea:有效地址传送指令;lds将源操作数指定的四个字节传送到指定的寄存器及DS寄存器中;les将源操作数指定的四个字节传送到指定的寄存器及ES寄存器中;xlat:(bx+al)=al4

19、)简述MUL、IMUL、DIV、IDIV、CBW、CWD指令的功能?答:MUL 无符号乘法.IMUL 整数乘法.以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算), DIV 无符号除法.IDIV 整数除法.以上两条,结果回送:商回送AL,余数回送AH, (字节运算);或 商回送AX,余数回送DX, (字运算).CBW 字节转换为字. (把AL中字节的符号扩展到AH中去)CWD 字转换为双字. (把AX中的字的符号扩展到DX中去)5)试述逻辑移位操作指令有哪些?如何使用?答:SHL 逻辑左移.SAL 算术左移.(=SHL) 操作数整体左移,每次的最高位移到CF,空余位补0SHR 逻

20、辑右移. 操作数整体右移,每次的最低位移到CF,空余位补0SAR 算术右移. 操作数整体右移,每次的最低位移到CF,空余位补符号数ROL 循环左移. 操作数整体左移,每次的最高位移到CF,最低位用原来最高位补ROR 循环右移. 操作数整体右移,最低位移到CF,最高位用原来最低位补RCL 通过进位的循环左移. 类似ROL循环左移,但CF加入到循环圈中RCR 通过进位的循环右移. 类似ROR循环左移,但CF加入到循环圈中6)试述串操作指令有哪些?如何使用?答:MOVS 串传送指令MOVSB:ES : DI DS : SI,SISI1,DIDI1MOVSW:ES : DI DS : SI,SISI2

21、,DIDI2使用前缀REP,可完成多次数据传送 STOS 存入串指令STOSB:ES : DI AL,DIDI1;STOSW:ES : DI AX,DIDI2可使用REP前缀LODS 从串中取数LODSB: AL DS : SI,SISI1;LODSW:AX DS : SI ,SISI2SCAS 串扫描指令,在数据中查找AL或AX中的内容SCASB:AL - ES : DI,DIDI1;SCASW:AX - ES : DI,DIDI2可使用REPE/REPZ 或 REPNE/REPNZ,仅影响标志位CMPS 串比较指令,两个MEM操作数的比较,源操作数目的操作数CMPSB:DS : SI ES

22、 : DI,SISI1,DIDI1;CMPSW:DS : SI ES : DI,SISI2,DIDI2可使用REPE / REPZ 或 REPNE / REPNZ,该指令只影响标志位,不保存结果7)简述RET、RET IMM16、IRET指令的功能?答:RET子程序返回指令,执行时,从堆栈顶部弹出返回地址RET IMM16带立即数(0-FFFFH范围的任何偶数)返回指令执行时,从堆栈顶部弹出返回地址,再使SP加上立即数,IRET中断返回,执行时,从堆栈中依次弹出断点地址的IP、CS和FLAG8)简述LOOP、LOOPE、LOOPNE、JCXZ指令的功能?答:LOOP TARGET 循环指令,循

23、环次数由CX决定LOOPZ / LOOPE TARGET 条件循环指令,执行时,在LOOP指令的基础上,还需判断ZF,若CX != 0 且 ZF = 1则循环LOOPNZ / LOOPNE TARGET 执行时,在LOOP指令的基础上,还需判断ZF若CX != 0 且 ZF = 0则循环JCXZ short_label ;CX=0则转移,测试条件:CX=09)简述根据子程序调用范围和寻址方式,说明CALL指令使用功能?答:CALL TARGET子程序调用指令类似转移指令,也有4种形式CALL 1000H ;段内直接转移,调用地址在指令中给出CALL AX ;段内间接转移,调用地址在AX中给出CALL 2000H:0200H ;段间直接转移,指令中直接给出调用地址的段地址和偏移量CALL DWORD PTR DI ;段间间接转移,调用地址在内存单元中执行该指令时,会将下一条指令的地址压入堆栈,该地址称为返回地址段内调用:只将返回地址的偏移量压入堆栈段间调用:将返回地址的段地址和偏移量压入堆栈,先压CS,后压IP实际使用时CALL指令后面直接跟子程序名

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

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