《微机原理作业(9页).doc》由会员分享,可在线阅读,更多相关《微机原理作业(9页).doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-作业8:第三章习题 P12211(1)、(3)13(1)(5)并说明每条指令的寻址方式。其中(4)的正确格式为:JMP FAR PTR PROG_F后面两问不做。作业8参考答案:11(1)EXTRA SEGMENT ;附加段GET_CHAR DB 26 DUP (?)EXTRA ENDSCODE SEGMENT ;代码段 ASSUME CS:CODE, DS:DATA, ES:EXTRA;段分配START: MOV AX, DATA ;初始化DS MOV DS, AX MOV AX, EXTRA ;初始化ES MOV ES,AX LEA SI,STRING LEA DI,GET_CHAR M
2、OV CX,26 CLD REP MOVSB MOV AH,4CH ;返回DOS INT 21HCODE ENDS END START ;源程序结束(3)CODE SEGMENT ;代码段 ASSUME CS:CODE, DS:DATA, ES:DATA;段分配START: MOV AX, DATA ;初始化DS和ES MOV DS, AX MOV ES,AX LEA DI,STRING LEA AL,& ;待搜索字符 MOV CX,26 CLDCONT: REPNE SCASB ;目的串ES:DI JNZ FINAL ;搜索结束,转FINAL MOV BYTE PTR DI-1, ;DS:D
3、I JMP CONT ;继续搜索FINAL: MOV AH,4CH ;返回DOS INT 21HCODE ENDS END START ;源程序结束13寻址方式转移地址(1)段内直接1200:0278H(2)段内间接1200:0300H(3)段内间接1200:4800H(4)段间直接3400:0ABCH(5)段间间接00FF:4800H作业9:第三章习题 P122P12312、14作业9参考答案:12: MOV BX,0 ;统计寄存器清0MOV CX,16 ;循环次数NEXT: ROL AX,1 ;循环左移1位JNC GOON ;CF=0,转GOONINC BX ;CF=1,统计累加1GOON
4、: RCR DX,1 ;带CF循环右移1位LOOP NEXT ;循环控制HLT ;停机14:循环次数AXBXCXDX(1)451600(2)12431(3)23720作业10:第三章习题 P12318第四章习题 P1995、6作业10参考答案:第三章18:(1)0040H4=10H(或16号中断)(2)D169:240BH(或D3A98H)第四章5:AX=1, BX=20, CX=16:将外设端口地址为5FH的内容读入AL若该内容的最高位为0,AH=FFH;若该内容的最高位为1,AH=0作业11:第四章习题 P1981、3作业11参考答案:1:A1占4BA2占6BA3占40B(452)A4占6
5、0B(1435)3:L=6 即变量BUF占用的内存字节数作业12:第四章习题 P1984、补充题1:以下的语句有数据0503H的字单元有多少个?0305H的字单元又有多少个?画图示出求解过程。VAR1 DB 25H DUP (3,3 DUP (5)补充题2:(阅读程序,写结果)执行下列指令段后,AX、BX寄存器的内容是什么?ORG 2000HVAR DW 2TAB1 DB 10H,20H,30H,40H,50H,60H RESULT DW ? MOV BX, OFFSET TAB1 ADD BX, VAR MOV AX, BX 补充题3(编程):利用中断调用,编写程序在屏幕上顺序显示26个大写
6、英文字母AZ,光标回车换行。作业12参考答案:第四章习题4:PLENTH=2+16+4=22(或16H)表示PAR、PNAME、COUNT三个变量总共占用的内存字节数补充题1:数据0503H的字单元有25H个数据0305H的字单元有24H个补充题2:BX=2004H AX=4030H补充题3:方法:采用9号功能调用(显示字符串)DATA SEGMENTSTR DB ABCDEFGHIJKLMNOPQRSTUVWXYZ,0DH,0AH,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX LEA DX,S
7、TR (或MOV DX,OFFSET STR) MOV AH,9 INT 21H MOV AH,4CH INT 21HCODE ENDS END START方法:采用2号功能调用(显示单字符)CODE SEGMENT ASSUME CS:CODESTART:MOV CX,26 ;循环显示26个大写字母MOV DL,41H(或A)NEXT: MOV AH,2 INT 21H INC DL LOOP NEXT MOV DL,0DH ;显示回车换行 MOV AH,2 INT 21HMOV DL,0AH MOV AH,2 INT 21H MOV AH,4CH INT 21HCODE ENDS END
8、START作业13:补充题1:(阅读程序,写结果)STR DB ABCDEF0123456789 MOV BX ,OFFSET STR MOV AL ,65H PUSH AX AND AL ,0FH XLAT MOV DL,AL POP AX ADD AL,08H DAA MOV DH,AL CMP DH,32H 执行上面程序段后,(DL)=46H?,(DH)=73H? 补充题2(编程):查找某门课学生考试最高成绩及并列人数。设学生人数50人,成绩存放在内存TAB开始的表中,最高成绩存入MAX单元,并列人数存入NUM单元。DATA SEGMENTDATA ENDSCODE SEGMENT AS
9、SUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV AH,4CH INT 21HCODE ENDS END START补充题3:已知程序段: MOV AX,X MOV BX,Y TEST AX,BX JS AA TEST AX,8000H JS BB MOV CX,0 JMP RR BB: MOV CX,1 JMP RR AA: MOV CX,OFFFFH RR: MOV Z,CX(1)若存储单元X的内容为40F4H,Y为D300H,程序执行后Z为多少?(2)若X为879CH,Y为CFFFH,Z为多少?(3)若X为0300H,Y为6FFFH,
10、Z为多少?补充题4:已知程序段: MOV AX,13H MOV CX,10H MOV DX,01H XOR BX,BXL1: TEST AX,DX JZ L2 INC BX L2: SHL DX,1 LOOP L1 求该程序执行后BX的值。该段程序的功能是什么?作业14:补充题1:(程序填空)下面子程序段的功能是将数据段中存于BUF开始的单元中一32位数循环左移一位,其结果存于RSLT单元。试在空白处填上适当的内容以保证程序的正确性。 XHZY PROC FAR PUSH AX PUSH DX MOV AX,BUF MOV DX,BUF+2 SHL AX, (1) RCL DX, (2) (3
11、) MOV RSLT,AX MOV (4) (5) (6) RET XHZY ENDP补充题2(编程):已知程序段:SUBP PROC PUSH BP MOV BP,SP PUSH CX PUSH BX MOV AX,BP+4 MOV BX,BP+6L1: ADD AX,BX POP BX POP CX POP BP RET 4SUBR ENDPMAIN PROC FAR MOV AX,300H PUSH AX MOV AX,205H PUSH AX CALL SUBR HLTMAIN ENDP 程序执行结果AX的内容是什么?程序执行到标号为L1处时,BP的内容减SP的内容结果是多少?补充题3
12、:以下为一段数据串搬家程序,请指出其中的错误,并写出正确语句。A DB 1,2,3,123B DB N DUP(?)N EQU -A MOV SI,AMOV DI,BMOV CX,LENGTH ALP: MOV AX,SIMOV DI,AXINC SIINC DIDEC CXLOOP LP参考答案:补充题3:A DB 1,2,3,123N EQU -AB DB N DUP(?)LEA SI,A (MOV SI,OFFSET A)LEA DI,B (MOV DI,OFFSET B)MOV CX,N (若N改用DB定义呢?)LP: MOV AL,SIMOV DI,ALINC SIINC DIDEC CXLOOP LP-第 9 页-