西南交大网络教育汇编语言程序设计 第三次作业_第1页
西南交大网络教育汇编语言程序设计 第三次作业_第2页
西南交大网络教育汇编语言程序设计 第三次作业_第3页
西南交大网络教育汇编语言程序设计 第三次作业_第4页
西南交大网络教育汇编语言程序设计 第三次作业_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、汇编语言程序设计 第三次作业11. 文件结尾的部分信息就没有被写入磁盘,从而造成写入的文件不完整。12. 下面的ASCIZ串有什么错误?PATH_NAME DB C:PROGRAMSTEST.DAT答:此ASCIZ串的最后少了一个全0字节,应改为:PATH_NAME DB C:PROGRAMSTEST.DAT, 013. 据定义如下: X1 DB 10H,100,1X2 DW 10H,100,1X3 DD ?COUNT EQU X3X1变量COUNT的值是       

2、60;           ,其表示的意义是                                    。答:

3、0;9       X1和X2两个变量所占内存字节单元的个数。(写为内存单元的个数也正确。如果写为字单元则为错误)14. 执行指令MOV AX,0MOV AL,09HADD AL,4若要获得结果AX0103H,则在ADD指令之后,加一条           指令,若要获得结果AL13H,在ADD指令之后加一条        &#

4、160; 指令。答:DAA        AAA15. 实现AL中高四位置1的指令为                       。实现AL中高四位取反的指令为         &

5、#160;                   。答: OR   AL,0F0H             XOR AL,0F0H16. 为中断向量区。答:最低1K字节     &#

6、160;   (0-3FFH)     0000开始的1K 字节以上三个答案都正确17. X、Y、Z是双精度数,他们分别存放在X、X+2、Y、Y+2、Z、Z+2的内存单元中,高位字存放在高位地址中,低位字存放在低位地址中,下列指令序列实现X+Y+24-Z W。并且用W和W+2单元存放运算结果:             MOV   

7、;AX,X             MOV   DX,X+2             ADD   AX,Y             ADC 

8、  DX,Y+2             ADD   AX,24             SUB   AX,Z            

9、60;SUB   DX,Z+2              MOV  W,AX              MOV  W+2,DX分析以上指令序列,指出程序中出现的错误:       

10、                                       ;           

11、;                                   。答:        在ADD和SUB两条指令之间加上 ADC  DX,0(仅

12、仅写出这条指令就正确)把SUB DX,Z+2改成SBB DX,Z+2(仅仅写出这条指令就正确)18. 在数据段中有一个字符串,其长度是17,要求把他们传送到附加段中的一个缓冲区。  DATA SEGMENT                 MESS1  DB PERSONAL COMPUTER       &

13、#160;     DATA ENDS             EXTRA SEGMENT                 MESS2  DB 17 DUP(?)  EXTRA ENDS  

14、CODE SEGMENT             MAIN PROC FAR                 ASSUME  CS:CODE, DS:DATA,ES:EXTRA      START: PUSH DS&#

15、160;            SUB AX,AX             PUSH AX             LEA SI,MESS1      

16、0;      LEA DI,MESS2             CLD             REP MOVSB             RET&

17、#160;            MAIN ENDP             CODE ENDS             END START以上是完整的程序段,请分析主过程,修改主过程中的错误。1、  

18、0;                                                ;2、 &

19、#160;                                                 ;

20、3、                                                 

21、0; ;4、                                                &

22、#160;  ;5、                                              

23、0;     。答:     MOV AX,DATAMOV DS,AXMOV AX,EXTRAMOV ES,AXMOV CX,17    只要写出以上5条指令就给分,每条指令1分。评分标准:指令中没有写出逗号、没有写对相应数据、写错操作码都视为错误答案。19. 已知主程序和子程序之间的调用如下:STACK SEGMENT         DB 100 DUP(0)ST

24、ACK ENDSCODE1 SEGMENTASSUME CS:CODE1,SS:STACKBEG:  ¼MOV   AX, 0A3BHMOV   CX, 1234HCALL  FAR  PTR  AA       ;断点(IP)=1110H, (CS)=0200H¼CODE1 ENDSCODE2 SEGMENTASSUME CS:CODE2AA  

25、PROC  FARPUSH  AXPUSH  CXBB:   ¼RETAA  ENDPCODE2 ENDSEND  BEG画出执行到标号BB时,堆栈的情况图。答:1234H0A3BH1110H0200H 20. 寄存器的二进制数用十六进制数的形式在屏幕上显示出来。答:1、 CODE SEGMENTMAIN PROC FAR   ASSUME CS:CODE   

26、60;  START:          PUSH DS          SUB AX,AX          PUSH AX          MOV CH,4 &#

27、160;      ROTATE:MOV CL,4               ROL BX,CL               MOV AL,BL        

28、;      AND AL,0FH             ADD AL,30H            CMP AL,3AH            JL PRINTIT&

29、#160;         ADD AL,07H     PRINTIT:MOV DL,AL          MOV AH,2          INT 21H        &

30、#160; DEC CH                 JNZ ROTATE              RETMAIN ENDPCODE ENDSEND START    21. 写出一段子程序,完成输出空行的功能。空出的行数在

31、AX寄存器中。答:CODE SEGMENT     MAIN PROC FAR        ASSUME CS:CODE          START:              PUSH DS   

32、;           SUB AX,AX              PUSH AX              MOV AX,5       

33、;OUTPUT:PUSH AX                    CALL DISP                POP AX         

34、           DEC AX 22. 假定(DS)=2000H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H则MOV AX,BX+10的寻址方式是                       

35、 ;操作数的物理地址是           。MOV AX,BPSI的寻址方式是                        ;操作数的物理地址是       

36、0;   。答:寄存器相对寻址      物理地址:20110H   基址变址寻址        物理地址:150B0H23. 如果TABLE为数据段中0032H单元的符号名,其中存放的内容为1234H,则执行MOV AX,TABLE 后AX寄存器的内容是          &#

37、160;   ;执行LEA AX,TABLE后AX寄存器的内容是             。答:1234H                0032H24. 如果TABLE为数据段中0032H单元的符号名,其中存放的内容为1234H,则执行MOV AX,TABLE

38、0;后AX寄存器的内容是              ;执行LEA AX,TABLE后AX寄存器的内容是             。答:1234H               

39、60;0032H25. 1、汇编语言程序上机操作的步骤是                                            

40、60;       ;                                 ;         &

41、#160;                              ;                   

42、                          。答:用编辑器编写汇编源程序ASM文件用MASM命令编译ASM文件为OBJ文件用LINK命令连接OBJ文件为EXE文件在DOS下运行程序查看结果或者进入DEBUG查看结果26. 假设X和X+2单元的内容为双精度数P, Y和Y+2单元的内容为双精度数Q(X,Y为低位字)

43、,试说明下列程序段做什么工作?         MOV DX,X+2         MOV AX,X         ADD AX,X         ADC DX,X+2     

44、60;   CMP DX,Y+2         JL  L2         JG  L1         CMP AX,Y         JBE L2L1:

45、0;MOV AX,1         JMP EXITL2: MOV AX,2EXIT:分析以上程序段。写出该程序段实现的功能:                               

46、                  。答:程序功能:  AX  =1 (2PQ)                 =2 (2PQ)     

47、 用语言描述也正确。27.  MOV CL,4SHL DX,CLMOV BL,AHSHL AX,CLSHR BL,CLOR  DL,BL分析以上程序段。写出该程序段实现的功能:                               &

48、#160;                。答: 程序功能:把DX AX构成的双精度数左移四位28. 以下程序段实现从键盘输入一个十进制数并转换成二进制数,试分析程序并填写恰当的指令使程序完整。 MOV BX,0        NEWCHAR:       &

49、#160;                        INT 21H                SUB AL,30H      &#

50、160;         JL EXITCMP AL,9DJG EXIT                XCHG AX,BXMOV CX,10D               XCHG AX,BXADD

51、 BX,AXJMP NEWCHAR           EXIT:RET答:MOV AH,1CBW          MUL CX 29. 下列程序段实现计算(V-(X*Y+Z-540)/X,并把结果的商存入AX,余数存入DX,其中X,Y,Z,V都是16位带符号数,已经分别装入了X,Y,Z,V单元中。试分析程序并填写恰当的指令使程序完整。  

52、60;         MOV AX,X            IMUL Y            MOV CX,AX            MOV

53、BX,DX            MOV AX,Z            CWD            ADD CX,AX          

54、;                             SUB CX,540                   &

55、#160;                   MOV AX,V                             

56、;          SUB AX,CX            SBB DX,BX            IDIV X答:    ADC BX,DXSBB DX,0CWD    &

57、#160; 平分标准:有写错指令操作码的不给分。30. 在ADDR单元中存放着数据Y,试编写一程序把Y中1的个数存入COUNT单元中。答:   DATA SEGMENTADDR  DW YCOUNT DW ?DATA ENDS     CODE SEGMENT  MAIN PROC FAR     ASSUME CS:CODE ,DS:DATA   

58、0;    START:              PUSH DS              SUB AX,AX              

59、PUSH AX              MOV AX,DATA              MOV DS,AX                 MOV

60、 CX,0                 MOV AX,ADDR      REPEAT:TEST AX,0FFFFH               JZ EXIT    

61、0;               JNS SHIFT                 INC CX              SHIFT:S

62、HL AX,1                    JMP RETEAT            EXIT:MOV COUNT,CX            &#

63、160;    RET    MAIN ENDP    CODE ENDS    END START    31. 设有5个学生的成绩分别是76,69,84,90,55。试编写程序统计成绩在80100,6079以及60分以下人数的个数分别存放在COUNT开始的三个字节单元中。答:DATA SEGMENT  ARRAY  DB 76,69,84,90

64、,55   COUNT   DB 3 DUP(0)DATA ENDS                CODE SEGMENT  MAIN PROC FAR     ASSUME CS:CODE ,DS:DATA        &#

65、160;START:                 PUSH DS                 SUB AX,AX                 PUSH AX    

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论