Calendar
Placard
Category
Latest Entries
Latest Comments
Last Messages
Links
Information
Search
Other
Welcome to my blog! 
  《微计算机技术》形成性考核册答案3
 
《微计算机技术》形成性考核册答案3
 

 

4 汇编语言程序设计基础(第二部分)

5.  0~10010之间的30个数,存入首地址为GRAD的字数组中,GRAD+i表示学号为i+1的学生成绩。另一个数组RANK30个学生的名次表,其中RANK+I的内容是学号为i+1的学生的名次。试编写程序,根据GRAD中的学生成绩,将排列的名次填入RANK数组中(提示:一个学生的名次等于成绩高于这个学生的人数加1)。

答案

dseg segment

grade      dw   30 dup(?)

rank        dw   30 dup(?)

dseg ends

cseg segment

main       proc far

assume    cs:cseg, ds:dseg, es:dseg

start:       push       ds

              sub  ax,ax

              push       ax

              mov ax,dseg

              mov ds,ax

              mov es,ax

begin:      mov di,0

              mov cx,30

loop1:      push       cx

              mov cx,30

              mov si,0

              mov ax,grade[di]

              mov dx,0

loop2:      cmp grade[si],ax

              jbe   go_on

              inc   dx

go_on:     add  si,2

              loop loop2

              pop  cx

              inc   dx

              mov rank[di],dx

              sdd  di,2

              loop loop1

              ret

main       endp

cseg        ends

              end  start

 

 

6.  分析下列程序的功能,写出堆栈最满时各单元的地址及内容。

         SSEG         SEGMENT         ‘STACK’        AT     1000H       ; 堆栈的段地址为1000H

                            DW  128 DUP(?)

          TOS                   LABEL       WORD

         SSEG                   ENDS

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

         DSEG        SEGMENT

                            DW  32 DUP(?)

         DSEG        ENDS

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

         CSEG        SEGMENT

         MAIN        PROC       FAR

                            ASSUME   CS:CSEG, DS:DSEG,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    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

                            INT    21H

                            RET

         HTOA        ENDP

         CSEG        ENDS

         ;       ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                            END START

 

 

答案:

 

 

 

1000:0F2H

B1

1000:0F4H

3

1000:0F6H

B1

1000:0F8H

2

1000:0FAH

B1

1000:0FCH

1

1000:0FEH

RETN

1000:100H

 

 

 

7.  写出分配给下列中断类型号在中断向量表中的物理地址。

   (1)  INT  12H              (2)  INT  8

答案:

 

(1) 00048h    

(2) 00020h

 

8.  试编写程序,它轮流测试两个设备的状态寄存器,只要一个状态寄存器的第0位为1,则与其相应的设备就输入一个字符;如果其中任一状态寄存器的第3位为1,则整个输入过程结束。两个状态寄存器的端口地址分别是阅读全文() | 回复(1) | 引用通告() | 编辑


  Post  by  午夜看日出 发表于 2007-11-8 9:03:46
  Re:《微计算机技术》形成性考核册答案3
  名字较好!奥运你去吗?
[ 个人主页 | 引用 | 返回 | 删除

  Post  by  zhongguoxin发表评论于2007-11-11 10:39:27

发表评论:

    昵称:
    密码:
    主页:
    标题:
Power By