微机原理习题答案4

  • 格式:doc
  • 大小:67.00 KB
  • 文档页数:11

微型计算机原理第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 BG4.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,89,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单元。