第 一 章 微型计算机概论1.1、答:微型计算机系统包括硬件系统和软件系统两大部分。硬件系统包括:微型计算机、外部设备、电源及其它辅助设备。软件系统包括:系统软件和应用软件。微型计算机也称为主机,主机包括:微处理器[1]、存储器[2]、输入/输出接口(Input/Output),微处理器通过系统总线和存储器、输入/输出接口进行连接。微处理器(Microprocessor Unit)简称为MPU(或者称为MP),它是一个中央控制器(Central Processing Unit),简称CPU。它是微型计算机的核心部件,它将运算器[3]、控制器、寄存器[4]通过内部总线连接在一起,并集成在一个独立芯片上。1.2、答:单片机是将CPU、ROM、RAM以及I/O接口电路[5]以及内部系统总线等全部集中在一块大规模集成电路[6]芯片上,就构成了单片机。单板机是将微处理器芯片、存储器芯片、I/O接口芯片及少量的输入输出设备[7](键盘,数码显示器)安装在一块印制板上构成一台微型计算机。由多块印制板构成的微机称为多板机。1.3、完成下列转换(保留4位小数)(21.32)10=(10101.0101)2=(25.2436)8=(15.51EB)1650.38D= 110010.0110 B=62.3024 Q= 32.6147 H1.4、完成下列计算已知X=-63,Y=59则[X]原=BFH(10111111B),[X]反=C0H(110000000B),[X]补=C1H(11000001B)[Y]原=3BH(00111011B),[Y]反=3BH(00111011B),[Y]补=3BH(00111011B)[X+Y]补=0FCH(11111100B),[X-Y]补=86H(10000110B)。[X] 补+[Y]补=0FCH(11111100B),[X] 补-[g]补=86H(10000110B)。1.5、答:浮点数是指小数点在数值中的位置不是固定不变,实际位置将随阶码而浮动,用这种方法表示的数,称为浮点数。MOV BX,OFFSET COUNT BX=1200HMOV SI,[BX] SI=1000HMOV AX,COUNT[SI][BX]A. X=_3040H__,BX = _1200H__,SI=__1000H____ B. X=322FH , 标志寄存器值为0410H C. ATA在内存数据段中的偏移量为24C0H,在24C0H~24C3H单元中依次存放着55H、66H、77H、88H。下列几条指令执行后,寄存器AX、BX、CL、SI、DS的值分别是多少? D. MOV AX,DATA 。 AX=6655H E. LEA SI,DATA 。 SI=24C0H F. MOV CL,[SI] 。 CL=55H G. LDS BX,DATA 。 DS=8877H,BX=6655HX=26D3H,CX=7908H,CF=1,OF=0,执行下列指令后,寄存器AX、CX的值分别是多少?_AX=A74CH ___ CX=FA08H __CF=_0__OF=__0_。SAL CH,1 CH=FA,CL=08HR AX,CL AX=A726H , CF=1ROL AL,1 AL=4CH , CF=04.10答:原串在数据段中,但可以段超越。目的串必须在附加段中。M/=1;DT/=1; =1; =0;H。地址总线上的数分是49420HL=23H,功能将压缩的BCD码转换为二进制。HCOD的内容是43H;HCOD+1的内容是35H。该程序段的功能是将压缩的十六进制转换为ASCII字符。L)= 02H ,(AX)= 0040H 。XOR BX, BXMOV AX, 0010HMOV CL, 2SAL AL , CLMOV BL , ALSAL AL , CLDD AX ,XL)=37H时,程序段执行结果:(AL)= 07HL)=9FH时,程序段执行结果:(AL)= 0FFHX为首址的字单元中的数据依次为1234H、5678H;以Y为首址的字单元中的数据依次为8765H、4321H。阅读程序,给出必要的程序注释并完成程序后的问题。LEA SI,X ;SI=0000HLEA DI,Y。DI=0004HMOV DX,[SI+2] 。 DX=5678HMOV AX,X 。 AX=1234HDD AX,X 。 AX=2468HDC DX,[SI+2] 。 DX=ACF0HMPX,[DI+2] 。 ACF0H与8765H比JL L2 ;小于转移到L2MP AX,Y ;大于2468H与4321比JL L1;小于转移到L1JMP EXIT ;无条件转移到EXITL1:MOV AX,1 ;给AX送1JMP EXIT ;无条件转移到EXITL2:MOV AX,2XIT:……X=2;DX= ACF0HH、0002H、0001H。该程序段实现了将二进制转换十进制功能。X=1~10,BX=10H起的累加和。AX=10,BX=47H,CX=0。MOV AX , 0000HMOV BX , 0010HMOV CX ,10LP: INC AXDDX , AXLOOP LPHLTX=2;DX= ACF0H4.20阅读下列程序段,给出必要的程序注释并完成程序后的问题。DD AL,AL 。2*ALDD AL、AL 。4*ALMOV BL,AL 。AL→BLSAL BL,1 。8*ALDD AL,BL 。12*ALHLTL中的内容乘以12L的初值为0AH,执行该程序段后,AL为多少? 答:AL=78H4.21已知有程序段如下:(与12题重)(1)该程序段的功能是什么?CD码转换成二进制L= 23HH开始的顺序30个单元中存放着8位无符号数,将它们的和放在DX中,试填空完成该程序(并加入必要的注释)或自行编制一段程序完成上述功能。MOV AX,4000H ;MOV DS,AX ; 送段首地址MOV SI,0000H ; 送偏移量MOV CX,30 ; 送循环次数X ; 清零OON: ADD AL,[SI] ; 两数相加DC AH,00H ; 加进位位I ; 修改地址EC CX ; 计数器减1JNZ GOON ; 不为零循环MOV DX,AX ; 结果送DXL中有一个十六进制数的ASCII码,完成下面程序段在每一空白处填上一条适当指令(并加入必要的注释),实现将AL中的ASCII码转换成二进制数。MP AL,3AH ; 与3AH比较JC DONE ; 小于转移到DONESUB AL,7 ; 大于减7ONE:SUB AL,30H ; AL减30HHLTEST。欲编程将它们全部初始化为0FFFFH值,试在下面程序段的空白处填上适当的指令或操作数(并加入必要的注释),以实现上述功能。LEA DI,DEST 。 取DEST偏移量MOV CX,100 。 送计数值LD 。 清方向标志位,DF=0MOV AL,0FFH 。 将AL←0FFHREP STOSB 。 将送100个字节FFH到首址为DEST区域EST。欲编程将它们全部初始化为0FFFFH值,试在下面程序段的空白处填上适当的指令或操作数(并加入必要的注释),以实现上述功能。(与24题重)I,DEST 。MOV CX, 。LD 。MOV AL,0FFH 。。LOCK,长17个字节。欲查找其中第一次出现字符“e”的位置,并将该位置所在的偏移量入栈保护。试在下面程序段的空白处填上适当的指令(并加入必要的注释)或操作数以实现上述功能。MOV DI,OFFSET BLOCK ;送BLOCK的偏移量MOV AL,65H; 送eASCII码MOV CX,17 ; 送计数值LD ; 方向标志位清零REPNZ SCASB ; 寻找eJNE OTHER ; 找到e转到OTHEREC DI ; 修改地址PUSH DI ; 偏移量入栈保护OTHER:……(略)UF1的首址为0000H,BUF2的首址为0010H,数据段与附加段重合。欲从BUF1处开始将10个字数据顺序传送至BUF2处,试在下面程序段的空白处填上适当的指令或操作数以实现上述功能。LEA SI,BUF1 ; 送BUF1的偏移量DD SI,12H ; 地址移动到字符串最后LEA DI,BUF2 ; 送BUF2的偏移量DD DI, 12H; 地址移动到字符串最后STD ; 方向标志位清零MOV CX, 10 ; 送计数值REPMOVSW ;进行串操作AT和DAT1两个字节变量单元中有两个十进制数的ASCII码,编程实现将这两个ASCII码转换为两个BCD码,并以压缩形式存放在REST字节变量单元中。试填写该程序划线部分,并加入必要的注释。MOV AL,DAT ;取第一个数SUB AL,30H ;将ASCII码转为BCD码MOV CL,4 ; 送移位数SHL AL,CL ;将BCD码放在AL高四位中MOV BL,DAT1 ;取第二个数SUB BL,30H ;将DAT1中的ASCII码转为BCD码OR AL,BL ;将两个BCD码合并在AL寄存器中MOV REST,AL ;将压缩形式的BCD码存人REST中HLT
第 一 章 微型计算机概论
1.1、答:微型计算机系统包括硬件系统和软件系统两大部分。硬件系统包括:微型计算机、外部设备、电源及其它辅助设备。软件系统包括:系统软件和应用软件。
微型计算机也称为主机,主机包括:微处理器[1]、存储器[2]、输入/输出接口(Input/Output),微处理器通过系统总线和存储器、输入/输出接口进行连接。
微处理器(Microprocessor Unit)简称为MPU(或者称为MP),它是一个中央控制器(Central Processing Unit),简称CPU。它是微型计算机的核心部件,它将运算器[3]、控制器、寄存器[4]通过内部总线连接在一起,并集成在一个独立芯片上。
1.2、答:单片机是将CPU、ROM、RAM以及I/O接口电路[5]以及内部系统总线等全部集中在一块大规模集成电路[6]芯片上,就构成了单片机。
单板机是将微处理器芯片、存储器芯片、I/O接口芯片及少量的输入输出设备[7](键盘,数码显示器)安装在一块印制板上构成一台微型计算机。
由多块印制板构成的微机称为多板机。
1.3、完成下列转换(保留4位小数)
(21.32)10=(10101.0101)2=(25.2436)8=(15.51EB)16
50.38D= 110010.0110 B=62.3024 Q= 32.6147 H
1.4、完成下列计算
已知X=-63,Y=59
则[X]原=BFH(10111111B),[X]反=C0H(110000000B),[X]补=C1H(11000001B)
[Y]原=3BH(00111011B),[Y]反=3BH(00111011B),[Y]补=3BH(00111011B)
[X+Y]补=0FCH(11111100B),[X-Y]补=86H(10000110B)。
[X] 补+[Y]补=0FCH(11111100B),[X] 补-[g]补=86H(10000110B)。
1.5、答:浮点数是指小数点在数值中的位置不是固定不变,实际位置将随阶码而浮动,用这种方法表示的数,称为浮点数。
MOV BX,OFFSET COUNT BX=1200H
MOV SI,[BX] SI=1000H
MOV AX,COUNT[SI][BX]
A. X=_3040H__,BX = _1200H__,SI=__1000H____B. X=322FH , 标志寄存器值为0410H
C. ATA在内存数据段中的偏移量为24C0H,在24C0H~24C3H单元中依次存放着55H、66H、77H、88H。下列几条指令执行后,寄存器AX、BX、CL、SI、DS的值分别是多少?
D. MOV AX,DATA 。 AX=6655H
E. LEA SI,DATA 。 SI=24C0H
F. MOV CL,[SI] 。 CL=55H
G. LDS BX,DATA 。 DS=8877H,BX=6655H
X=26D3H,CX=7908H,CF=1,OF=0,执行下列指令后,寄存器AX、CX的值分别是多少?_AX=A74CH ___ CX=FA08H __CF=_0__OF=__0_。
SAL CH,1 CH=FA,CL=08H
R AX,CL AX=A726H , CF=1
ROL AL,1 AL=4CH , CF=0
4.10答:原串在数据段中,但可以段超越。目的串必须在附加段中。
M/




H。地址总线上的数分是49420H
L=23H,功能将压缩的BCD码转换为二进制。
HCOD的内容是43H;HCOD+1的内容是35H。该程序段的功能是将压缩的十六进制转换为ASCII字符。
L)= 02H ,(AX)= 0040H 。
XOR BX, BX
MOV AX, 0010H
MOV CL, 2
SAL AL , CL
MOV BL , AL
SAL AL , CL
DD AX ,
X
L)=37H时,程序段执行结果:(AL)= 07H
L)=9FH时,程序段执行结果:(AL)= 0FFH
X为首址的字单元中的数据依次为1234H、5678H;以Y为首址的字单元中的数据依次为8765H、4321H。阅读程序,给出必要的程序注释并完成程序后的问题。
LEA SI,X ;SI=0000H
LEA DI,Y。DI=0004H
MOV DX,[SI+2] 。 DX=5678H
MOV AX,X 。 AX=1234H
DD AX,X 。 AX=2468H
DC DX,[SI+2] 。 DX=ACF0H
MP
X,[DI+2] 。 ACF0H与8765H比
JL L2 ;小于转移到L2
MP AX,Y ;大于2468H与4321比
JL L1;小于转移到L1
JMP EXIT ;无条件转移到EXIT
L1:MOV AX,1 ;给AX送1
JMP EXIT ;无条件转移到EXIT
L2:MOV AX,2
XIT:……
X=2;DX= ACF0H
H、0002H、0001H。该程序段实现了将二进制转换十进制功能。
X=1~10,BX=10H起的累加和。AX=10,BX=47H,CX=0。
MOV AX , 0000H
MOV BX , 0010H
MOV CX ,10
LP: INC AX
DD
X , AX
LOOP LP
HLT
X=2;DX= ACF0H
4.20阅读下列程序段,给出必要的程序注释并完成程序后的问题。
DD AL,AL 。2*AL
DD AL、AL 。4*AL
MOV BL,AL 。AL→BL
SAL BL,1 。8*AL
DD AL,BL 。12*AL
HLT
L中的内容乘以12
L的初值为0AH,执行该程序段后,AL为多少? 答:AL=78H
4.21已知有程序段如下:(与12题重)
(1)该程序段的功能是什么?
CD码转换成二进制
L= 23H
H开始的顺序30个单元中存放着8位无符号数,将它们的和放在DX中,试填空完成该程序(并加入必要的注释)或自行编制一段程序完成上述功能。
MOV AX,4000H ;
MOV DS,AX ; 送段首地址
MOV SI,0000H ; 送偏移量
MOV CX,30 ; 送循环次数
X ; 清零
OON: ADD AL,[SI] ; 两数相加
DC AH,00H ; 加进位位
I ; 修改地址
EC CX ; 计数器减1
JNZ GOON ; 不为零循环
MOV DX,AX ; 结果送DX
L中有一个十六进制数的ASCII码,完成下面程序段在每一空白处填上一条适当指令(并加入必要的注释),实现将AL中的ASCII码转换成二进制数。
MP AL,3AH ; 与3AH比较
JC DONE ; 小于转移到DONE
SUB AL,7 ; 大于减7
ONE:SUB AL,30H ; AL减30H
HLT
EST。欲编程将它们全部初始化为0FFFFH值,试在下面程序段的空白处填上适当的指令或操作数(并加入必要的注释),以实现上述功能。
LEA DI,DEST 。 取DEST偏移量
MOV CX,100 。 送计数值
LD 。 清方向标志位,DF=0
MOV AL,0FFH 。 将AL←0FFH
REP STOSB 。 将送100个字节FFH到首址为DEST区域
EST。欲编程将它们全部初始化为0FFFFH值,试在下面程序段的空白处填上适当的指令或操作数(并加入必要的注释),以实现上述功能。(与24题重)
I,DEST 。
MOV CX, 。
LD 。
MOV AL,0FFH 。
。
LOCK,长17个字节。欲查找其中第一次出现字符“e”的位置,并将该位置所在的偏移量入栈保护。试在下面程序段的空白处填上适当的指令(并加入必要的注释)或操作数以实现上述功能。
MOV DI,OFFSET BLOCK ;送BLOCK的偏移量
MOV AL,65H; 送eASCII码
MOV CX,17 ; 送计数值
LD ; 方向标志位清零
REPNZ SCASB ; 寻找e
JNE OTHER ; 找到e转到OTHER
EC DI ; 修改地址
PUSH DI ; 偏移量入栈保护
OTHER:……(略)
UF1的首址为0000H,BUF2的首址为0010H,数据段与附加段重合。欲从BUF1处开始将10个字数据顺序传送至BUF2处,试在下面程序段的空白处填上适当的指令或操作数以实现上述功能。
LEA SI,BUF1 ; 送BUF1的偏移量
DD SI,12H ; 地址移动到字符串最后
LEA DI,BUF2 ; 送BUF2的偏移量
DD DI, 12H; 地址移动到字符串最后
STD ; 方向标志位清零
MOV CX, 10 ; 送计数值
REPMOVSW ;进行串操作
AT和DAT1两个字节变量单元中有两个十进制数的ASCII码,编程实现将这两个ASCII码转换为两个BCD码,并以压缩形式存放在REST字节变量单元中。试填写该程序划线部分,并加入必要的注释。
MOV AL,DAT ;取第一个数
SUB AL,30H ;将ASCII码转为BCD码
MOV CL,4 ; 送移位数
SHL AL,CL ;将BCD码放在AL高四位中
MOV BL,DAT1 ;取第二个数
SUB BL,30H ;将DAT1中的ASCII码转为BCD码
OR AL,BL ;将两个BCD码合并在AL寄存器中
MOV REST,AL ;将压缩形式的BCD码存人REST中
HLT
题目解答
答案
30 40 1 0 00 322F 0410H DS=8877H, BX= 6655 H OF=0 FA08H OF=__0_ ( 与 21 题重 ) MOV AX, 0010H 2 2 ( 与 12 题重 ) STOSB (与 24 题重) 12H 1 2 H