1 / 21

习题课

习题课. —— 数据处理部分. 1 程序逻辑控制. 1. 下列指令中不等价的是() A.JA 和 JNBE B.JG 和 JNLE C.JL 和 JNG D.JBE 和 JNA 2. 下列指令中等价的是() A.JC 和 JO B.JNC 和 JNO C.JP 和 JPE D.JA 和 JG. 3. 条件转移指令的转移范围() A.-128-- +127 B.-32768 -- +32767 C.0 -- +255 D.0 -- +65535 4. 循环指令 LOOP AGAIN 终止循环的条件是() A. ( AX ) =0 B. ( BX ) =0

sef
Télécharger la présentation

习题课

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 习题课 ——数据处理部分

  2. 1 程序逻辑控制 1.下列指令中不等价的是() A.JA和JNBEB.JG和JNLE C.JL和JNGD.JBE和JNA 2.下列指令中等价的是() A.JC和JOB.JNC和JNO C.JP和JPED.JA和JG

  3. 3.条件转移指令的转移范围() A.-128-- +127B.-32768 -- +32767 C.0 -- +255D.0 -- +65535 4.循环指令LOOP AGAIN终止循环的条件是() A.(AX)=0B.(BX)=0 C.(CX)=0D.(DX)=0 5.循环指令LOOPNZ终止循环的条件是()。 A.CX=0,且ZF=0B.CX=0,或ZF=1 C.CX≠0,且ZF=0D.CX≠0,或ZF=1

  4. 设AX,BX。CX中的数是带符号数,下列程序求AX.BX.CX中的最小值,结果在AX中.请将程序填写完整。设AX,BX。CX中的数是带符号数,下列程序求AX.BX.CX中的最小值,结果在AX中.请将程序填写完整。 CMP AX,BX   (1)_________________ XCHG AX,BX NEXT:CMP CX,AX   (2)_________________ XCHG AX,CX EXIT: 答:(1)JLE NEXT   (2)JGE EXIT

  5. 下列程序测试DL寄存器D6和D2位。若同时为0,转ZERO,置AX为0,否则转NON_ZERO,置AX为1。下列程序测试DL寄存器D6和D2位。若同时为0,转ZERO,置AX为0,否则转NON_ZERO,置AX为1。 TEST DL,(1)_______ JZ ZERO NO ZERO:MOV AX,1      (2)___________________ ZERO:MOV AX,0 EXIT: 答:(1)01000100B    (2)JMP NEXT

  6. 下列程序段求数组ARRAY的累加和。请将程序填写完整。共10项数据。下列程序段求数组ARRAY的累加和。请将程序填写完整。共10项数据。 ARY DW 45H,68H,…,0ABC1H,9600H;   COUNT DW 10   (1)__________ MOV CX,COUNT XOR AX,AX AGAIN:ADD AX,[SI] ADD SI,2   (2)____________ 答:(1)LEA SI,AKY   (2)LOOP AGAIN

  7. 1.执行下列程序: MOV AX,9B47H MOV BX,0B568H ADD AX,BX JNO L1 JNC L2 SUB AX,BX JNC L3 JNO L4 JMP SHORT L5   问:1)程序执行后,(AX)= ? 2)程序转向哪个标号? 答:1)9B47HL5

  8. 程序分析题 DATA SEGMENT S9 DB 0,1,2,3,4,5,6,7,8,9 DATA ENDS   ┆ LEA SI,S9 LEA, DI,S9+1 MOV CX,5 LOP: MOV AL,[SI] XCHG AL,[DI] MOV [SI],AL ADD SI,2 ADD DI,2 LOOP LOP 上述程序段运行后,S9开始的10个字节存储单元内容是什么? 答:S9 DB 1,0,3,2,5,4,7,6,9,8

  9. 设在数据段中有X,Y两个变量(字节单元),试编写程序段计算:设在数据段中有X,Y两个变量(字节单元),试编写程序段计算: x 当x>=0时 |x|  当x<0时 y= 解:MOV AX, X CMP AL, 0 JGE LAB NEG AL LAB:MOV Y, AL

  10. 在给定个数的数中寻找最大值,放至指定的存储单元。在给定个数的数中寻找最大值,放至指定的存储单元。 DATASEGMENT BUFFERDB2, 4, 3, 6, 1, 5 COUNTDW6 MAXDB? DATAENDS

  11. CODESEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX, DATA MOV DS, AX MOV CX, COUNT LEA BX, BUFFER MOV AX, [BX] INC BX DEC CX AGAIN:CMP AX, [BX] JGE NEXT MOV AX, [BX] NEXT:INC BX LOOP AGAIN MOV AX, 4C00H INT 21H CODEENDS ENDSTART

  12. 思考1 • 已知ARRAY DW 1200, 0069H, 798AH, … , 432BH;共10项数据。 编程统计正数项个数存入PLUS单元中。 DATA SEGMENT ARRAY DW 1200, 0069H, 798AH, 432BH, …… PLUS DB ? DATA SEGMENT

  13. 思考2 • 在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项的绝对值之和,并将和数存入以SUM为首址的数据区中。 DATA SEGMENT BUF1 DW -56,24,54,-1,89,-8,… BUF2 DW 45,-23,124,345,-265,… SUM DW 10 DUP(0) DATA ENDS

  14. 2 过程 • 下面的程序段有错吗?若有,请指出错误。CRAY PROC PUSH AX ADD AX,BX RET ENDPCRAY

  15. 判断题(正确的画√ ,错误的画× ) 1.寄存器传递参数法适合于参数较多的情况。() 2.用赋值法编写子程序时,子程序内必须修改返回地址。() 3.RET N指令中,N可为任意值。() × √ ×

  16. 简答题  在指令系统中,段内、段间返回均为RET指令。试回答:   (1)执行段内返回RET指令时,执行的操作是:   (2)执行段间返回RET指令时,执行的操作是: 答:(1)执行段内返回:     栈顶内容→IP,SP+2→SP   (2)执行段间返回:     栈顶内容→IP,SP+2→SP     栈顶内容→CS,SP+2→SP

  17. 编写完整程序,把从键盘读入的一个小写字母转换成相应的大写母,并输出显示。编写完整程序,把从键盘读入的一个小写字母转换成相应的大写母,并输出显示。

  18. code segment assume cs:code main: mov ah,1 int 21h ;输入字符到al mov bl,al ;暂存到bl中 sub bl,32 ;小写字母转成大写字母 mov ah,2 ;回车换行 mov dl,13 int 21h mov dl,10 int 21h mov dl,bl ;输出大写字母 int 21h mov ah,4ch ;控制权交还DOS int 21h code ends end main

  19. 设在DAT单元存放一个-9~+9的字节数据,在SQRTAB数据区中存放了0~9的平方值,请用直接查表法编写一个子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。设在DAT单元存放一个-9~+9的字节数据,在SQRTAB数据区中存放了0~9的平方值,请用直接查表法编写一个子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。 要求: 子程序开始时必须利用堆栈保护用到的各寄存器,并在返回前恢复;主程序结构要书写完整(包括子程序的调用方式)。 其中数据段如下: DATA SEGMENT DAT DB -6 SQRTAB DB 0,1,4,9,16,25,36,49,64,81 SQR DB ? DATA ENDS

  20. DATASEGMENT DATDB -6 SQRTABDB 0,1,4,9,16,25,36,47,64,81 SQRDB ? DATAENDS STACKSEGMENT PARA STACK DW 20H DUP(?) STACKENDS CODESEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX CALL SUBROT MOV AH,4CH INT 21H

  21. SUBROTPROC PUSH AX PUSH BX LEA BX,SQRTAB MOV AL,DAT TEST AL,80H JNS NEXT NEG AL NEXT:  XLAT SQRTAB MOV SQR,AL POP BX POP AX RET SUBROTENDP CODEENDS ENDSRART

More Related