项目一
一、选择题
1.A2.B3.A4.D5.D
6.C7.C8.B
二、填空题
1.控制器运算器
2.计算机的中央处理单元,负责解释和执行指令主存总线输入输出设备
3.2
三、计算题
1.数制和码制转化
(1)189.1875275.14BD.3
(2)11110111F7367
(3)111011110011010010736322244946
(4)1100000
2.FFH;5AH(正数)或A6H(负数,最高位为符号位)
3.如果用[X]补=(9F)16来求解,要考虑正数和负数。
4.
(1)无溢出
(2)无溢出
(3)无溢出
(4)有溢出,结果错
四、问答题
1.41611B101D F
2.ASCⅡ码的首位为0,而汉字编码的首位为1。汉字编码,以GB2312码为例,是以两个ASCII字符为一个汉字编码,而且用的都是ASCII中扩展字符集中的编码组成,如果内码与当前程序使用的解码不一致,文字就不能正常显示,而显示成回ASCII的形式,这种情况称为乱码。
3.中央处理器cpu包括运算逻辑部件、寄存器部件和控制部件。中央处理器从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。
4.微型计算机由运算器、控制器、存储器、输入设备和输出设备五大部分组成。
5.系统软件:是软件的基础,所有应用软件都要在系统软件上运行。
Windows系列:windows2000、windows XP、windows7、Dos、Linux Unix 等;
应用软件:能够实现某种特定任务的软件,例如:office系列金山WPS杀毒软件工具软件等
项目二
一、选择题
1.A2.D3.A4.D5.C
6.D7.C8.D9.C10.C
11.D12.D13.D14.D15.A
16.A17.C18.B19.D20.D
二、填空题
1.负责完成CPU与存储器或I/O设备间的数据传送;执行命令
2.CF PF AF ZF SF OF
3.取指令、译码、读写操作数
三、计算题
1.物理地址=32000H,可参阅图2.14。
2.(1)MOV AX,[1024H];直接寻址,数据段,11024H (2)MOV AX,TABLE;直接寻址,数据段,10500H
(3)MOV AX,100H[BX];基址寻址,数据段,10300H
(4)MOV AX,TABLE[BP][SI];相对基址加变址,数据段,10900H
(5)MOV AX,1234H;立即寻址
(6)MOV AX,ES:[1234H];直接寻址,附加数据段,11234H
(7)MOV AX,10H[EAX];基址寻址,数据段,10410H
(8)MOV AX,10H[EAX*2];变址寻址,数据段,10810H
(9)ADD AL,[EAX][SI];基址变址寻址,数据段,10500H
(10)SUB EAX,TABL[BP];基址寻址,SS段,10900H
四、程序分析
1.已知DS=1300H,AX=1234H,BX=1200H,CX=01BCH,SI=0020H,DI=0032H,存储单元(14281H)(14280H)=0A426H,(14235H)(14234H)=3000H,(14233H)(14232H)=0634H,(14233H)(14232H)=0634H,(14231H)(14230H)=5678H,下列各程序段执行
结果如何?
((1)LEA BX,50H[BX][SI];传送的是有效地址,BX=1270H MOV AX,10H[BX];物理地址=14280H,AX=0A426H,
(2)XCHG CX,30H[BX];交换指令,CX=5678H,(14281H)(14280H)=01BCH
XCHG50H[BX][SI],AX;交换指令,AX=0634H,(14271H)(14270H)=1234H
2.已知SS=1234H,SP=00B0H,执行下列指令后,试指出SP和CX的值,并绘出堆栈区数据变化图。
CX=0F80H;SP=00AEH;变化图可参阅图2-15。
3.已知AL=93H,CF=1,试指出下列每条指令执行后CF、ZF、SF、PF和AF 的状态。
(1)MOV AL,50H;数据传送,CF、ZF、SF、PF和AF不受影响(2)ADD AL,80H;CF=1,ZF=0,SF=0,PF=0,AF=0
(3)SUB AL,0A0H;CF=1,ZF=0,SF=1,PF=1,AF=0
(4)ADC AL,0F8H;CF=1,ZF=0,SF=1,PF=0,AF=0
(5)SBB AL,18H;CF=1,ZF=0,SF=0,PF=0,AF=0
(6)INC AL;CF=1,ZF=0,SF=1,PF=0,AF=0,该指令不影响CF
(7)DEC AL;CF=1,ZF=0,SF=1,PF=0,AF=0,该指令不影响CF
(8)NOT AL;不影响标志位
(9)AND AL,80H;影响PF、SF和ZF标志位
(10)OR AL,0FH;影响PF、SF和ZF标志位
4.以下程序段执行后AX寄存器的值是多少?
MOV AX,0008H;AX=0008H
ADD AL,09H;0011H
AAA;AX=17,参阅44页
5.已知AX和BX中为有符号数,试问在什么条件下执行以下各条指令后,程序转向不同的目标地址?
ADD AX,BX
JO PROG1;OF=1时,转移
JNC PROG2;A≥B时,转移
JS PROG3;SF=1时,转移
JNZ PROG4;ZF=0时,转移
JMP PROG5;无条件跳转
五、程序编写
1.按要求编制程序段
(1)将AX寄存器的低四位置0;AND AX,0FFF0H
(2)将EBX的高8位和低8位交换;XCH BH,BL
(3)将CX的内容乘以16;CX左移4次或者将CX内容导入其他寄存器,利用CX做数据寄存器,移动,再返回数据。程序段如下:
MOV AX,CX
MOV CX,4
SAL AX,CL;左移4次
MOV CX,AX
(4)将数据段中偏移地址为2000H中所存字传送到BX中。
MOV BX,[2000H]
2.使用查表指令将0~9转换成ASCII码。
解:程序段如下:
DATA SEGMENT
TABLE DB30H,…….39H;10个数,注意这里没有显示,
;如果要显示,或者要每个显示出来,
需要参阅例3-9
LEA BX,TABLE
MOV AL,06H;假设为06号元素
XLAT
3.AX、BX和CX中为有符号的16位二进制数,现要求求出最大值,并存储在MAX单元中,试编写程序段。
解:程序段如下:
CMP AX,BX
JGE NEXT;A X≥BX,转移
XCHG AX,BX;否则,数据交换,AX中存的是大数NEXT:CMP AX,CX;AX与CX比较
JGE DONE;A X≥CX,转移
XCHG AX,CX
DONE:MOV MAX,AX;最大值存入MAX中
4.100个有符号的16位二进制数存储在以BLOCK为首地址的存储区中,现要求将其中的正数和负数分开,并分别存储在以POSI和MINU为首地址的存储区中,试编写程序段。
解:注意:该程序是比较的字,所以SI每次要加2。
程序参考如下:
DATA SEGMENT
NUM EQU100;定义计数器定义100个数
BLOCK DW NUM DUP(?);定义100个随机数
MINUS DW100DUP(?);开放数据空间
POSI DW100DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV SI,0;定位单元起始地址
MOV CX,NUM;将100送入计数器
L1:MOV AX,BLOCK[SI];从第一个数据开始
TEST AX,8000H
JZ NEXT1;ZF=1,说明为正数,转移
MOV MINUS[SI],AX;否则,为负数,存储
JMP PASS1
NEXT1:MOV POSI[SI],AX
PASS1:INC SI
INC SI
LOOP L1
MOV AH,4CH
INT21H
CODE ENDS
END START
5.试编写一汇编程序段,使之实现:在100个字符的数据串BLOCK中搜索字符“K”,若有,则将OK单元置1,否则置0。
解:
LEA DI,BLOCK;目标字符串首地址送DI
MOV BX,DI;首地址暂存BX
MOV CX,100;串长度送CX
MOV AL,’K’;关键字符K的ASCⅡ码送AL
CLD
REPNZ SCASB;扫描字符串,直到找到字符K或CX=0
JZ FOUND;若找到,则转移
MOV OK,0;没找到要搜索的关键字,使存储单元OK 为0
JMP DONE
FOUND:MOV OK,1
HLT
项目三
一、选择题
1.A2.D3.C4.B5.A
二、填空题
1.机器的低级程序设计编译连接程序2.分支循环
三、按要求完成下列题目
1.给出下列语句中,求出指令立即数(数值表达式)的值:
(1)MOV AL,21H AND56H OR0AH;先AND,再OR,AX=0AH (2)MOV AX,14ABH/16+1200H;先右移4位,再加,AX=134AH (3)MOV AX,23H SHL4;左移4位,AX=0230H
2.画图说明下列语句分配的存储空间及初始化的数据值:
(1)BYTE_V AR DB‘ABCD’,10,10H,11000011B,2DUP(—1,?,5DUP(2))
(2)WORD_V AR DW20H,20,—5,2DUP(?)
该题目参阅例3.3,注意分清字节、字的存储单元。
3.请设置一个数据段,按照以下要求定义变量:
(1)BYTE_V AR1为字符串变量,表示字符串“MY PC”
BYTE_V AR1DB‘MY PC’
(2)BYTE_V AR2为用十进制数表示的字节变量,这个数的大小为20
BYTE_V AR2DB20;注意,这里是字节变量,而不是赋值,下同
(3)BYTE_V AR3为用十六进制数表示的字节变量这个数的大小为20
BYTE_V AR3DB14H
(4)BYTE_V AR4为用二进制数表示的字节变量,这个数的大小为20
BYTE_V AR4DB10000100B
(5)WORD_V AR为20个未赋值的自变量
WORD_V AR DW20DUP(?)
(6)CHANGL_1为100的符号常量
CHANGL_1EQU100