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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机原理第四五六章作业.docx

1、微机原理第四五六章作业第四章作业答案4.1 分析汇编语言源程序应该由哪些逻辑段组成?各段的作用是什么?语句标号和变量应具备哪3种属性?【解答】汇编语言源程序应该由若干个逻辑段组成,可以有若干个数据段、代码段、堆栈段和附加数据段,至少要有一个代码段。各段的作用如下:(1)代码段用来存放程序和常数。(2)数据段用于数据的保存。(3)堆栈段用于保护数据,尤其在子程序调用、中断过程中进行现场信息保护。(4)附加数据段用于数据的保存。语句标号和变量应具备的3种属性:段属性、偏移属性和类型属性。4.2指出下列程序中的错误: STAKSG SEGMENT DB 100 DUP(?) STA_SG ENDS

2、DTSEG SEGMENT DATA1 DB ? DTSEG END CDSEG SEGMENT MAIN PROC FAR START: MOV DS,DATSEG MOV AL,34H ADD AL,4FH MOV DATA,AL START ENDP CDSEG ENDS END答案:改正后:STAKSG SEGMENT DB 100 DUP(?)STAKSG ENDSDTSEG SEGMENTDATA1 DB ?DTSEG ENDSCDSEG SEGMENTMAIN PROC FAR ASSUME CS: CDSEG, DS: DTSEG, SS: STAKSGSTART: MOV A

3、X, DTSEGMOV DS, AXMOV AL, 34HADD AL, 4FHMOV DATA1, ALMOV AH, 4CHINT 21HMAIN ENDPCDSEG ENDS END S4.3.将下列文件类型填入空格:(1) .obj(2) .exe(3) .crf(4) .asm(5) .lst(6) .map 编辑程序输出的文件有_; 汇编程序输出的文件有_; 连接程序输出的文件有_。答案:编辑程序输出文件: (4)汇编程序输出文件: (1), (3), (5)连接程序输出文件: (2), (6)4.4下面的数据项定义了多少个字节? DATA_1 DB 6 DUP(4 DUP(0FF

4、H)答案: 24字节4.5.对于下面两个数据段,偏移地址为10H和11H的两个字节中的数据是一样的吗?为什么? DTSEG SEGMENT | DTSEG SEGMENT ORG 10H | ORG 10H DATA1 DB 72H | DATA1 DW 7204H DB 04H | DTSEG ENDS DTSEG ENDS |答案:不一样. 分别是72H, 04H和04H, 72H. 存储字时低8位存在低字节,高8位存在高字节.4.6.下面的数据项设置了多少个字节? (1) ASC_DATA DB 1234 (2) HEX_DATA DB 1234H答案:(1) 设置了4个字节 (2) 设

5、置了2个字节4.7. 执行下列指令后, AX寄存器中的内容是什么? TABLE DW 10,20,30,40,50 ENTRY DW 3 . . .MOV BX,OFFSET TABLEADD BX,ENTRYMOV AX,BX答案:(AX)=404.8.分析下列程序的功能,写出堆栈最满时各单元的地址及内容。 SSEG SEGMENT STACK AT 1000H ; 堆栈的段地址为1000H DW 128 DUP(?) TOS LABEL WORD SSEG ENDS; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

6、 - - - - - - - - - - - - DSEG SEGMENT DW 32 DUP(?) DSEG ENDS; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CSEG SEGMENT MAIN PROC FAR ASSUME CS:CSEG, DS SEG,SS:SSEG START: MOV AX,SSEG MOV SS,AX MOV AX,DSEG MOV DS,AX MOV AX,4321H CALL HTOA RETN: MOV AH,4CH INT

7、 21H MAIN ENDP ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HTOA PROC NEAR CMP AX,15 JLE B1 PUSH AX PUSH BP MOV BP,SP MOV BX,BP+2 AND BX,0FH MOV BP+2,BX POP BP MOV CL,4 SHR AX,CL CALL HTOA B1: POP AX B2: ADD AL,30H JL PRT ADD AL,07 PRT: MOV DL,AL MOV AH,2 I

8、NT 21H RET HTOA ENDP CSEG ENDS ; ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - END START答案:1000:0F2HB11000:0F4H31000:0F6HB11000:0F8H21000:0FAH B11000:0FCH 11000:0FEH RETN1000:100H 4.9 下面是将内存一字节数据高4位和低4位互换并放回原位置的程序,找出错误并改正。 DATA SEGMENTDD1 DB 23HDATA ENDSCODE SEG

9、MENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA SI,OFFSET DD1MOV AL,SIMOV CL,4RCR AL,CLMOV SI,ALMOV AH,4CHINT 21HCODE ENDS END START【解答】程序第8行错误:LEA SI,OFFSET DD1,应去掉OFFSET;程序第10行错误:RCR AL,CL,应使用ROR或ROL,改为ROR AL,CL4.10编写程序,比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示MATCH,若不同则显示NO MATCH。答案:datare

10、a segment string1 db asfioa string2 db xcviyoaf mess1 db MATCH,$ mess2 db NO MATCH,$datarea endsprognam segment assume cs:prognam,ds:datareamain proc far start: push dssub ax,axpush axmov ax,datareamov ds,axmov es,axbegin: mov cx, string2-string1 mov bx, mess1-string2 cmp bx,cx jnz dispnolea dx,addr

11、lea si,string1lea di,string2repe cmpsbjne dispno mov ah,9 lea dx,mess1int 21h retdispno: mov ah, 9 lea dx, mess2 int 21hretmain endpprognam ends end start4.11根据字节变量control中的各位被置位情况控制程序转移到8个远过程中的一个。【解答】DATA SEGMENT SUBSTABLE DW SUBR1 DW SUBR2 DW SUBR3 DW SUBR4 DW SUBR5 DW SUBR6 DW SUBR7 DW SUBR8 CONT

12、ROL DB 40HDATA ENDSSS_SEG SEGMENT STACK DB 100 DUP(0)SS_SEG ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:SS_SEG MAIN PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV BX,OFFSET SUBSTABLE MOV AL,CONTROL DIVERT: RCR AL,1 JC GETAG ADD BX,2 JMP SHORT DIVERT GETAG: CALL BX RET MAIN ENDP SUBR1 PR

13、OC RET SUBR1 ENDP SUBR8 PROC RET SUBR8 ENDPCODE ENDS END MAIN4.12 编写一个程序,接收从键盘输入的10个十进制数字,输入回车符则停止输入,然后将这些数字加密后(用XLAT指令变换)存入内存缓冲区BUFFER。加密表为; 输入数字: 0,1,2,3,4,5,6,7,8,9 密码数字: 7,5,9,1,3,6,8,0,2,4答案:Data segmentscode db 7,5,9,1,3,6,8,0,2,4buffer db 10 dup(?)Data endsCode segmentassume cs:prognam,ds:dat

14、areastart: mov ax, Datamov ds,axmov si,0mov cx,10lea bx,scodeinput: mov ah,01int 21hcmp al,0ahjz exitand al,0fhxlatmov buffersi,alinc siloop inputexit:mov ah,4chint 21h Code ends End start4.13 从键盘输入一系列字符,以回车符结束,编程统计其中非数字字符的个数。【解答】DATA SEGMENT BLOCK DB 100 DUP (?) COUNT DB ?DATA ENDSCODE SEGMENT ASSU

15、ME DS:DATA,CS:CODESTART:MOV AX,DATA MOV DS,AX MOV DL,0 LEA SI,BLOCKLP: MOV AH,1INT 21HCMP AL,0DHJZ EXIT MOV SI,AL CMP AL,30HJAE NEXTCMP AL,39HJBE NEXT INC DLNEXT: INC SI JMP LPEXIT: MOV COUNT,DLMOV AH,4CH INT 21HCODE ENDS END START4.14请用16进制和10进制分别显示内存单元中一个字节的有符号数。【解答】DATA SEGMENT DATA1 DB 088H DATA

16、2 DB 4 DUP(0)DATA ENDSSTACK SEGMENT STACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKMAIN PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX, DATA MOV DS, AX HEXN:MOV AL, DATA1 MOV CL,4 SHR AL,CL CALL DISPL1 MOV AL,DATA1 AND AL,0FH CALL DISPL1 DECN:MOV AL,DATA1 SHL AL,1 JNC EEE MOV DL

17、,- MOV AH,2 INT 21H MOV AL,DATA1 NEG AL JMP DECN0 EEE:MOV AL,DATA1 DECN0:LEA BX,DATA2 XOR SI,SI MOV DL,10 DECN1:XOR AH,AH DIV DL MOV BX+SI,AH INC SI AND AL,0FFH JZ AAA JMP DECN1 AAA:DEC SI JZ BBB MOV AL,BYTE PTR BX+SI CALL DISPL1 JMP AAA BBB:MOV AL,BYTE PTR BX CALL DISPL1 RETMAIN ENDPDISPL1 PROC PUS

18、H AX ADD AL,30H CMP AL,39H JNA CCC ADD AL,07H CCC:MOV DL,AL MOV AH,2 INT 21H POP AX RETDISPL1 ENDPCODE ENDS END MAIN4.15在数据段中以buffer单元开始连续存放10个8位二进制无符号数,将其中最大数找出来,存于max单元中,试编程。【解答】data segment buffer db 27, 17, 100, 65, 12, 36, 79, 41,88,3 max db ?data endsss_seg segment stack db 100 dup(0)ss_seg en

19、dscode segment assume cs:code, ds:data, ss:ss_seg main proc far mov ax, data mov ds, ax mov cx, 9 mov bx, 0 mov al, bufferbx main1: add bx,2 cmp al, bufferbx jge next mov al, bufferbx next: loop main1 mov max, al mov ax, 4c00h int 21h main endpcode ends end main4.16在数据段longdata中存放32位二进制无符号数(低位在前),将该变量以16进制形式显示输出,试编程。【解答】DATA SEGMENT LONGDATA DD 0123ABC

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

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