最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

微机原理练习题

IT圈 admin 34浏览 0评论

2024年3月10日发(作者:吕虹英)

1. 125D=( )B=( )H? 1000D=( )H=( )O

2. 8位二进制有符号数A=1110 0001B,则A-1=( )B

3 求1111-1010

4.用8个二进制位表示一个数,则: - 3=( )B?

5.用8个二进制位表示一个数,则:最大的负整数为( )H?

6.已知某存储单元的段基址2000H、偏移地址为1000H,求其物理地址。

段寄存器的内容为3F00H,IP寄存器的内容为1000H,则下一条指令的物理地址为()

8. 已知当前DS=1000H,将物理地址为12000H的存储单元内容输入到AX寄存器。

9. 已知当前DS=3000H,将物理地址为12000H的存储单元内容输入到AX寄存器。

10. 将数据30H输出到端口地址为2000H的外设

11. 执行下列指令后,AL=?

XOR AL, AL

MOV AL, 90H

CMP AL, 20H

RCL AL, 1

ADC AL, 10H

TEST AL, FFH

SUB AL, 30H

12.已知DS寄存器内的内容即为当前数据段的段地址。将32个字节的数据块从地址1000H

开始的存储单元传送到地址1400H开始的存储单元。

13. 将AL左移两位的指令

若SS=1000H,SP=1000H,AX=1234H,BX=5678H,试说明执行下列指令之后,SP=? SS=?

CX=?

PUSH BX

PUSH AX

POP CX

14设堆栈指针SP的初值为2000H,AX=3000H,BX=5000H,试问:

(1) 执行指令PUSH AX后SP=?

(2) 再执行下列两条指令后,SP=?AX=?BX=?

PUSH BX

POP AX

15.编程将1000H传送给端口地址为10H、11H的外设

16.问执行下列指令后,AL=?,CF=?

MOV AX,1000H

MOV DS,AX

MOV BX,0FF00H

MOV [100H],BX

MOV AL,[101H]

ADD AL,1

17..判断存储单元1000:1030H内存储的数据是否负数,若是,将-1送入存储单元1000:

1031H;若不是,将0送入存储单元1000:1031H

算法: a. 设段寄存器

b. 取该数到AL

c. 该数左移一位,符号位送CF

d. 若为负数,转f

e. 若不为负数,0送1000:1031H,转g

f. -1送1000:1031H

g. 停机

MOV DS, 1000H ; 1

MOV SI, 1030H ; 2

MOV AL, SI ; 3

SHL AL, 1 ; 4

JNZ LP1 ; 5

MOV [1031], 0 ; 6

LP1: MOV [1031H], -1 ; 7

HALT

18. 指出下列指令中的错误:

主程序: ...

CALL PRO1 ; 1

...

子程序:

PRO1: PUSH AX ; 2

PUSH BX ; 3

MOV AL, 1 ; 4

MOV BL, 2 ; 5

ADD AL, BL ; 6

POP AX ; 7

POP BX ; 8

IRET ; 9

19. 已知存储器的一段数据区的内容如下:

1000: 0000 12 25 38 40 58 68 77 81 ....

....

用DEBUG编写的指令段如下:

1110: 0001 MOV AX, 1000

1110: 0004 MOV DS, AX

1110: 0006 MOV SI, 2

1110: 0009 MOV AH, [SI+1]

1110: 000C MOV AL, [SI+3]

1110: 000F ADD AH, AL

1110: 0011

问:1. MOV AH, [SI+1]指令在存储器指令区的存储地址。

2024年3月10日发(作者:吕虹英)

1. 125D=( )B=( )H? 1000D=( )H=( )O

2. 8位二进制有符号数A=1110 0001B,则A-1=( )B

3 求1111-1010

4.用8个二进制位表示一个数,则: - 3=( )B?

5.用8个二进制位表示一个数,则:最大的负整数为( )H?

6.已知某存储单元的段基址2000H、偏移地址为1000H,求其物理地址。

段寄存器的内容为3F00H,IP寄存器的内容为1000H,则下一条指令的物理地址为()

8. 已知当前DS=1000H,将物理地址为12000H的存储单元内容输入到AX寄存器。

9. 已知当前DS=3000H,将物理地址为12000H的存储单元内容输入到AX寄存器。

10. 将数据30H输出到端口地址为2000H的外设

11. 执行下列指令后,AL=?

XOR AL, AL

MOV AL, 90H

CMP AL, 20H

RCL AL, 1

ADC AL, 10H

TEST AL, FFH

SUB AL, 30H

12.已知DS寄存器内的内容即为当前数据段的段地址。将32个字节的数据块从地址1000H

开始的存储单元传送到地址1400H开始的存储单元。

13. 将AL左移两位的指令

若SS=1000H,SP=1000H,AX=1234H,BX=5678H,试说明执行下列指令之后,SP=? SS=?

CX=?

PUSH BX

PUSH AX

POP CX

14设堆栈指针SP的初值为2000H,AX=3000H,BX=5000H,试问:

(1) 执行指令PUSH AX后SP=?

(2) 再执行下列两条指令后,SP=?AX=?BX=?

PUSH BX

POP AX

15.编程将1000H传送给端口地址为10H、11H的外设

16.问执行下列指令后,AL=?,CF=?

MOV AX,1000H

MOV DS,AX

MOV BX,0FF00H

MOV [100H],BX

MOV AL,[101H]

ADD AL,1

17..判断存储单元1000:1030H内存储的数据是否负数,若是,将-1送入存储单元1000:

1031H;若不是,将0送入存储单元1000:1031H

算法: a. 设段寄存器

b. 取该数到AL

c. 该数左移一位,符号位送CF

d. 若为负数,转f

e. 若不为负数,0送1000:1031H,转g

f. -1送1000:1031H

g. 停机

MOV DS, 1000H ; 1

MOV SI, 1030H ; 2

MOV AL, SI ; 3

SHL AL, 1 ; 4

JNZ LP1 ; 5

MOV [1031], 0 ; 6

LP1: MOV [1031H], -1 ; 7

HALT

18. 指出下列指令中的错误:

主程序: ...

CALL PRO1 ; 1

...

子程序:

PRO1: PUSH AX ; 2

PUSH BX ; 3

MOV AL, 1 ; 4

MOV BL, 2 ; 5

ADD AL, BL ; 6

POP AX ; 7

POP BX ; 8

IRET ; 9

19. 已知存储器的一段数据区的内容如下:

1000: 0000 12 25 38 40 58 68 77 81 ....

....

用DEBUG编写的指令段如下:

1110: 0001 MOV AX, 1000

1110: 0004 MOV DS, AX

1110: 0006 MOV SI, 2

1110: 0009 MOV AH, [SI+1]

1110: 000C MOV AL, [SI+3]

1110: 000F ADD AH, AL

1110: 0011

问:1. MOV AH, [SI+1]指令在存储器指令区的存储地址。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论