微机原理及应用习题与答案

2007-11-15 02:16:05      
  •     MOV DATAY,AX

        MOV DATAY+2,DX

        (4)

        MOV AX,WORD PTR DATAX

        MOV BX,WORD PTR DATAY

        MUL BX

        MOV RESULT,AX

        MOV RESULT+2,DX

        MOV AX,WORD PTR DATAX

        MOV AX,WORD PTR DATAY+2

        MUL BX

        ADD RESULT+2,AX

        ADC RESULT+4,DX

        MOV AX,WORD PTR DATAX+2

        MOV BX,WORD PTR DATAY

        MUL BX

        ADD RESULT+2,AX

        ADC RESULT+4,DX

        MOV AX,WORD PTR DATAX+2

        MOV BX,WORD PTR DATAY+2

        MUL BX

        ADD RESULT+4,AX

        ADC RESULT+6,DX

        (5) MOV AX, DATAX

        MOV BL, 23

        DIV BL

        MOV BL,AH

        MOV AH, 0

        MOV DATAY, AX ;存放商

        MOV AL,BL

        MOV DATAY+2, AX ;存放余数

        (6) MOV AX, DATAX

        MOV DX, DATAX+2

        DIV DATAY

        MOV DATAY, AX

        MOV DATAY+2, DX

        13. 试分析下面的程序段完成什么操作?

        MOV CL,04

        SHL DX,CL

        MOV BL,AH

        SHL AX,CL

        SHR BL,CL

        OR DL,BL

        答案:将DX: AX中的双字左移4位(乘16)

        14. 用其他指令完成和下列指令一样的功能:

        (1) REP MOVSB (2) REP LODSB (3) REP STOSB (4) REP SCASB

        答案:

        (1) LOOP1:

        MOV AL,BYTE PTR [SI]

        MOV ES:BYTE PTR [DI], AL

        INC SI 或: DEC SI

        INC DI 或: DEC DI

        LOOP LOOP1

        (2) LOOP1:

        MOV AL, BYTE PTR [SI]

        INC SI 或: DEC SI

        LOOP LOOP1

        (3) LOOP1:

        MOV ES:BYTE PTR [DI], AL

        INC DI 或: DEC DI

        LOOP LOOP1

        (4) LOOP1:

        CMP AL,ES:BYTE PTR [DI]

        JE EXIT

        INC DI 或: DEC DI

        LOOP LOOP1

        EXIT:

        15. 编写程序段, 比较两个5字节的字符串OLDS和NEWS, 如果OLDS字符串与NEWS不同, 则执行NEW_LESS, 否则顺序执行程序。

        答案:

        LEA SI, OLDS

        LEA DI, NEWS

        MOV CX, 5

        CLD

        REPZ CMPSB

        JNZ NEW_LESS

        16. 假定AX和BX中的内容为带符号数, CX和DX中的内容为无符号数, 请用比较指令和条件转移指令实现以下判断:

        (1) 若DX的值超过CX的值,则转去执行EXCEED

        (2) 若BX的值大于AX的值,则转去执行EXCEED

        (3) CX中的值为0吗? 若是则转去执行ZERO

        (4) BX的值与AX的值相减, 会产生溢出吗? 若溢出则转OVERFLOW

        (5) 若BX的值小于AX的值,则转去执行EQ_SMA

        (6) 若DX的值低于CX的值,则转去执行EQ_SMA

        答案:

        (1) CMP DX, CX

        JA EXCEED

        (2) CMP BX, AX

        JG EXCEED

        (3) CMP CX, 0

        JE ZERO

        (4) SUB BX, AX

        JO OVERFLOW

        (5) CMP BX, AX

        JL EQ_SMA

        (6) CMP DX, CX

        JB EQ_SMA

        17. 假如在程序的括号中分别填入指令:

        (1) LOOP L20 (2) LOOPNE L20 (3) LOOPE L20

        试说明在三种情况下, 当程序执行完后, AX、BX、CX、DX四个寄存器的内容分别是什么?

        TITLE EXLOOP.COM

发表评论/ 全部评论

  • 验证码:
  • 验证码:
  • 匿名发表:

推荐文章