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]指令在存储器指令区的存储地址。