最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

微机原理习题答案4

来源:动视网 责编:小OO 时间:2025-10-01 21:07:37
文档

微机原理习题答案4

微型计算机原理第4章习题参4.1已知某数据段中有COUNT1EQU16HCOUNT2DW16H下面两条指令有何异同。MOVAX,COUNT1MOVBX,COUNT2解:同:执行完之后,AX=BX=16H异:MOVAX,COUNT1向AX中传送的是立即数,而MOVBX,COUNT2向BX中传送的是变量内容。4.2下列程序段执行后,寄存器AX、BX和CX的内容分别是多少?ORG0202HDA-WORDDW20HMOVAX,DA-WORD;AX=0020HMOVBX,OFFSETDA-WORD
推荐度:
导读微型计算机原理第4章习题参4.1已知某数据段中有COUNT1EQU16HCOUNT2DW16H下面两条指令有何异同。MOVAX,COUNT1MOVBX,COUNT2解:同:执行完之后,AX=BX=16H异:MOVAX,COUNT1向AX中传送的是立即数,而MOVBX,COUNT2向BX中传送的是变量内容。4.2下列程序段执行后,寄存器AX、BX和CX的内容分别是多少?ORG0202HDA-WORDDW20HMOVAX,DA-WORD;AX=0020HMOVBX,OFFSETDA-WORD
微型计算机原理第4章习题参

4.1已知某数据段中有

COUNT1    EQU    16H

COUNT2    DW     16H

下面两条指令有何异同。

MOV  AX,COUNT1

MOV  BX,COUNT2

解: 同:执行完之后,AX=BX=16H

   异:MOV AX,COUNT1向AX中传送的是立即数,而MOV BX,COUNT2向BX中传送的是变量内容。

4.2下列程序段执行后,寄存器AX、BX和CX的内容分别是多少?

ORG   0202H    

DA-WORD  DW  20H

MOV  AX,DA-WORD                 ;AX=0020H

MOV  BX,OFFSET  DA-WORD      ;BX=0202H

MOV  CL,BYTE  PTR  DA-WORD     ;CL=20H

MOV  CH,TYPE  DA-WORD        ;CH=02H

解: AX=0020H,BX=0202H,CX=0220H

4.3设平面上有一点P的直角坐标(x,y),试编制完成以下操作的程序:

如P点落在第I象限,则K=I;

如P点落在坐标轴上,则K=0。

解:

DAT  SEGMENT

msg     db 'please input number only!$'

MSG1     DB 10,13,'INPUT X:$'

MSG2     DB 10,13,'INPUT Y:$'

xbuf     db  20,0

xbuf1     db 20 dup(?)

ybuf      db 20,0

ybuf1     db 20 dup(?)

D1       DB  10,13,'K='

D2       DB  '?,$'

DAT     ENDS

COD     SEGMENT

           ASSUME CS:COD,DS:DAT

BG:    MOV AX,DAT

          MOV DS,AX

          mov dx,offset msg

    mov ah,9

    int 21h

    MOV DX,OFFSET MSG1

          MOV AH,9

          INT 21H

          mov dx,offset xbuf

    MOV AH,0AH

          INT 21H

          MOV DX,OFFSET MSG2

          MOV AH,9

          INT 21H

          mov dx,offset ybuf

    MOV AH,0AH

          INT 21H

          CMP ybuf1,'0'

          JE  PRO1

          CMP xbuf1,'0'

          JE PRO1

          cmp xbuf1,'-'

    Jz PRO2

          CMP ybuf1,'-'

          Je PRO4

          MOV  D2,'1'

        JMP SHOW

PRO1:    MOV  D2,'0'

        JMP SHOW

PRO2:    CMP ybuf1,'-'

           Je PRO3

           MOV  D2,'2'

         JMP SHOW

PRO3:    MOV  D2,'3'

        JMP SHOW

PRO4:    MOV  D2,'4'

SHOW:    MOV DX,OFFSET D1

           MOV AH,9

           INT 21H

    mov ah,4ch

    int 21h

COD     ENDS

          END BG

4.4  试编制一程序,把CHAR1中各小写字母分别转换为对应的大写字母,并存放于CHAR2开始的内存单元中。

CHAR DB‘abcdef’

CHAR2 DB $—CHAR1 DUP(0)

解:

DAT     SEGMENT

CHAR1     DB 'abcdefgh'

CHAR2     DB $-CHAR1 DUP(0)

N      EQU  $-CHAR2

DAT     ENDS

COD     SEGMENT

      ASSUME  CS:COD,DS:DAT

BG:     MOV AX,DAT

          MOV DS,AX

         MOV SI,0

          MOV CX,N

LP:     MOV AL,CHAR1[SI]

          SUB AL,20H

          MOV CHAR2[SI],AL

          INC SI

          LOOP LP

          MOV AH,4CH

          INT 21H

COD     ENDS

         END BG

4.5  试编写一程序,把DABY1字节单元中数据分解成3个八进制数,其最高位八进制数据存放在DABY2字节单元中,最低位存放在DABY2+2字节单元中。

DABY1 DB 6BH

DABY2 DB 3DUP(0)

解:

DAT     SEGMENT

DABY1      DB  6BH

DABY2      DB  3 DUP(0)

    DB  24H

DAT     ENDS

COD     SEGMENT

      ASSUME CS:COD,DS:DAT

BG:       MOV AX,DAT

      MOV DS,AX

      MOV AL,DABY1

      AND AL,07H  

          MOV DABY2+2,AL

      MOV AL,DABY1

      AND AL,38H

          MOV CL,3

      SHR AL,CL

          MOV DABY2+1,AL

      MOV AL,DABY1

      AND AL,0C0H

          MOV CL,6

      SHR AL,CL  

          MOV DABY2,AL

          MOV AH,4CH

          INT 21H

COD        ENDS

      END BG

4.12  试编写一程序,编程计算(A*B+C-70)/A,其中A、B、C均为字节变量。

解:

DAT     SEGMENT

A     DB 23

B     DB 45

C     DB 67

shang     DB ?

yushu      db ?

DAT     ENDS

COD     SEGMENT

      ASSUME CS:COD,DS:DAT

BG:     MOV AX,DAT

          MOV DS,AX

        MOV AL,A

          IMUL B

          MOV CL,C

    MOV CH,0

    ADD AX,CX

         MOV DX,70

          SUB AX,DX

          MOV BL,A

    IDIV BL

           MOV shang,AL

    mov yushu,ah

      MOV AH,4CH

          INT 21H

COD     ENDS

           END BG

4.14  试编写一程序,找出BUF数据区中带符号数的最大数和最小数。

解:

DAT     SEGMENT

BUF     DB  3,6,5,4,1,-56,,78,-67,12,43,45,-32

N     EQU $-BUF

max    db ?

min    db ?  

DAT     ENDS

COD     SEGMENT

      ASSUME CS:COD,DS:DAT

BG:    MOV AX,DAT

         MOV DS,AX

         MOV SI,1

         MOV CX,N-1

     mov al,buf

    mov bl,al

RECMP1: CMP AL,BUF[SI]

           JgE NOP1

        mov AL,BUF[SI]

NOP1:     cmp bl,buf[si]

    jle  nop2

    mov  bl,buf[si]

nop2:    INC SI

           LOOP RECMP1

           mov  max,al

    mov min,bl

           MOV AH,4CH

           INT 21H

COD     ENDS

           END BG

4.5  试编写一程序,把DABY1字节单元中数据分解成3个八进制数,其最高位八进制数据存放在DABY2字节单元中,最低位存放在DABY2+2字节单元中。

DABY1 DB 6BH

DABY2 DB 3DUP(0)

解:

DAT     SEGMENT

DABY1      DB  6BH

DABY2      DB  3 DUP(0)

    DB  24H

DAT     ENDS

COD     SEGMENT

      ASSUME CS:COD,DS:DAT

BG:     MOV AX,DAT

      MOV DS,AX

      MOV AL,DABY1

      AND AL,07H  

          MOV DABY2+2,AL

          MOV AL,DABY1

              AND AL,38H

          MOV CL,3

              SHR AL,CL

          MOV DABY2+1,AL

              MOV AL,DABY1

              AND AL,0C0H

              MOV CL,6

               SHR AL,CL  

              MOV DABY2,AL

             MOV AH,4CH

              INT 21H

COD            ENDS

              END BG  

4.6 从BUF地址处起,存放有100字节的字符串,设其中有一个以上的‘A’字符,编程查找出第一个‘A’字符相对起始地址的距离,并将其存入LEN单元。

解:

DAT SEGMENT

STRING ‘1234ABCE--------’

N  EQU  $-STRING

KEY  DB  ‘A‘

LEN  DB  ?

MSG1  DB  ‘NOT  FOUND KEY $’

MSG2  DB  ‘THE KEY IS AT:$‘

DAT ENDS

COD  SEGMENT

      ASSUME  CS:COD,DS:DAT

BG:MOV  AX,DAT

     MOV  DS,AX

     MOV  SI,0

     MOV  CX,N-1

     MOV  AL,BYTE PTR KEY

LP:CMP  AL,STRING[SI]

12
34
0
56
78
00
90
00
46
AB
34
12
00
00
04
00
10
00
00
00
00
00
00
    JNE  NEXT

    JE  FIND

NEXT:INC  SI

       LOOP  LP

       MOV  DX,OFFSET  MSG1

       MOV  AH,9

       INT  21H

       JMP  LAST

FIND:MOV  LEN,SI

       MOV  DX,OFFSET  MSG2

       MOV  AH,9

       INT  21H 

       MOV  DL,LEN

       MOV  AH,2

       INT  21H

LAST:MOV  AH,4CH

       INT  21H

COD  ENDS

             

4.7 写出下列逻辑地址的段地址,偏移地址和物理地址。

(1)4312H:0B74H         (2)10ADH:0DE98H        

(3)8314H:0FFH        (4)78BCH:0FD42H    

解:(1)段地址:4312H,偏移地址:0B74H,物理地址:43C94H

   (2)段地址:10ADH,偏移地址:0DE98H,物理地址:1E968H

   (3)段地址:8314H,偏移地址:0FFH,物理地址:930A4H

   (4)段地址:78BCH,偏移地址:0FD42H,物理地址:802H

4.8 某程序设置的数据区如下所示

DATA   SEGMENT

DB1    DB   12H,34H,0,56H

DW1   DW   78H,90H,0AB46H

ADR1  DW   DB1

ADR2  DW   DW1

AAA   DW   $—DB1

BUF   DB    5 DUP(0)

DATA  ENDS

画出该数据段内容在内存中的存放形式

(要求用十六进制补码表示,按字节组织)

解:如右图示

       

4.9 假设BX=54A3H,变量VALUE中存放的内容为68H,确定下列各条指令单独执行后BX=?

(1)XOR  BX,VALUE       (2)OR  BX,VALUE

(3)AND  BX,00H          (4)SUB  BX,VALUE

(5)XOR  BX,0FFH         (6)TEST  BX,01H

解:(1)BX=54CBH        (2)BX=54EBH

   (3)BX=00H           (4)BX=543BH

   (5)BX=545CH          (6)BX=54A3H,按位与,不回送结果  

4.10 以BUF1和BUF2开头的两个字符串,其长度均为LEN,试编程实现。

(1)将BUF1开头的字符串传送BUF2开始的内存空间;

(2)将BUF1开始的内存空间全部为零。

解:

DAT  SEGMENT 

BUF1  DB  ‘ABCD——‘

BUF2  DB  ‘1234——‘

LEN  EQU  $—BUF2

DAT  ENDS

COD  SEGMENTS

      ASSUME  CS:COD,DS:DAT

BG:MOV  AX,DAT

    MOV  DS,AX

    MOV  SI,0

    MOV  CX,LEN

LP1:MOV  AL,BUF1[SI]

     MOV  BUF2[SI],AL

     INC  SI

     LOOP  LP1

     MOV  SI,0

     MOV  CX,LEN

     MOV AL,0

LP2:MOV  BUF1[SI],AL

     INC  SI

     LOOP  LP2

     MOV  AH,4CH

     INT  21H

COD  ENDS

      END  BG 

4.11 假设数据段的定义如下所示。

P1     DW        ?

P2    DB 32 DUP(?)

PLLENTH     EQU $—P1

试问PLENTH的值为多少?表示什么意义?

解:PLENTH的值为34,它表示包括P1、P2的数据变量的总长度(字节数)。

4.12  试编写一程序,编程计算(A*B+C-70)/A,其中A、B、C均为字节变量。

解:

DAT     SEGMENT

A     DB 23

B     DB 45

C     DB 67

shang     DB ?

yushu      db ?

DAT     ENDS

COD     SEGMENT

      ASSUME CS:COD,DS:DAT

BG:     MOV AX,DAT

          MOV DS,AX

        MOV AL,A

          IMUL B

          MOV CL,C

    MOV CH,0

    ADD AX,CX

         MOV DX,70

          SUB AX,DX

          MOV BL,A

    IDIV BL

           MOV shang,AL

    mov yushu,ah

      MOV AH,4CH

          INT 21H

COD     ENDS

           END BG

4.14  试编写一程序,找出BUF数据区中带符号数的最大数和最小数。

解:

DAT     SEGMENT

BUF     DB  3,6,5,4,1,-56,,78,-67,12,43,45,-32

N     EQU $-BUF

max    db ?

min    db ?  

DAT     ENDS

COD     SEGMENT

      ASSUME CS:COD,DS:DAT

BG:    MOV AX,DAT

         MOV DS,AX

         MOV SI,1

         MOV CX,N-1

     mov al,buf

    mov bl,al

RECMP1: CMP AL,BUF[SI]

           JgE NOP1

        mov AL,BUF[SI]

NOP1:     cmp bl,buf[si]

    jle  nop2

    mov  bl,buf[si]

nop2:    INC SI

           LOOP RECMP1

           mov  max,al

    mov min,bl

           MOV AH,4CH

           INT 21H

COD     ENDS

           END BG

4.17  在自BLOCK开始的存储区中有100个带符号数。试用气泡排列法编写成一个程序使它们排列有序。

解:    按照从小到大的顺序排列:

DAT      SEGMENT

BLOCK   DB      1,2,3,-3,4,43,5,-45,23,-43,123,-123,43

n    equ    $-block

DAT      ENDS

COD      SEGMENT

        ASSUME  CS:COD,DS:DAT

BG:     MOV     AX,dat

        MOV     DS,AX

        mov     dx,n-1

           mov     si,0

lp:           mov     al,block[si]

        MOV     CX,n-1

             sub    cx,si

          mov     bx,1

RECMP:   cmp     AL,block[bx+SI]

            JLE      NOCH

            xchg    AL,block[bx+SI]

NOCH:       INC     bx

               LOOP      RECMP

            mov     block[si],al

            inc    si

            dec       dx

            jnz       lp

            MOV      AH,4CH

            INT      21H

COD          ENDS

               END      BG

4.20   试编程:从键盘上输入同学的姓名Mr.ABC或MrS.XYZ,当按动回车键时,屏幕上将显示出

“Welcome MR.ABC”或“Welcome MrS.XYZ”

解:    

dat     segment

msg1    db      10,'please input you name:$'

msg2    db      10,13,'welcome  $'

keybuf  db      50,0

key     db      50 dup('$')

dat     ends

cod     segment

        assume  cs:cod,ds:dat

beg:    mov     ax,dat

        mov     ds,ax

lp:     mov dx,offset msg1

        mov ah,9

        int 21h

        mov dx,offset keybuf

        mov ah,10

        int 21h

 ;       mov al,13

 ;       cmp al,key

 ;       je end_l

        mov dx,offset msg2

        mov ah,9

        int 21h

        mov dx,offset key

        mov ah,9

        int 21h

 ;       jmp lp

end_l:  mov ah,4ch

        int 21h

cod     ends

        end beg

4.20   试编程:从键盘上输入同学的姓名Mr.ABC或MrS.XYZ,当按动回车键时,屏幕上将显示出

“Welcome MR.ABC”或“Welcome MrS.XYZ”

解:    

dat     segment

msg1    db      10,'please input you name:$'

msg2    db      10,13,'welcome  $'

keybuf  db      50,0

key     db      50 dup('$')

dat     ends

cod     segment

        assume  cs:cod,ds:dat

beg:    mov     ax,dat

        mov     ds,ax

lp:     mov dx,offset msg1

        mov ah,9

        int 21h

        mov dx,offset keybuf

        mov ah,10

        int 21h

 ;       mov al,13

 ;       cmp al,key

 ;       je end_l

mov dx,offset msg2

        mov ah,9

        int 21h

        mov dx,offset key

        mov ah,9

        int 21h

 ;       jmp lp

end_l:  mov ah,4ch

        int 21h

cod     ends

        end beg

文档

微机原理习题答案4

微型计算机原理第4章习题参4.1已知某数据段中有COUNT1EQU16HCOUNT2DW16H下面两条指令有何异同。MOVAX,COUNT1MOVBX,COUNT2解:同:执行完之后,AX=BX=16H异:MOVAX,COUNT1向AX中传送的是立即数,而MOVBX,COUNT2向BX中传送的是变量内容。4.2下列程序段执行后,寄存器AX、BX和CX的内容分别是多少?ORG0202HDA-WORDDW20HMOVAX,DA-WORD;AX=0020HMOVBX,OFFSETDA-WORD
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top