⑵x和y两个数均为有符号的补码数X>Y
3.16X1+X2=10X2+X135H或53
习题2
一、选择题
1.APC是英文PersonalComputer的缩写,就是“个人计算机”,个人计算机属于微型计算机。
2.C3.D4.D5.D
6.B7.B8.B9.A
10.A、B11.A12.D13.C
14.C
二、填写下列各题
1.
运
算
器
控
制
器
系
统
控
制
器
存
储
器
输
入
输
出
接
口
软
件
微处理器
微处理机
微型计算机
微型计算机系统
2.数据总线、地址总线和控制总线。
3.8086微处理器的字长为16位,能直接访问存储器的容量为1MB。
80286微处理器的字长为16位,能直接访问存储器的容量为16MB。
80386SX微处理器的字长为32位,能直接访问存储器的容量为16MB。
80386DX微处理器的字长为32位,能直接访问存储器的容量为4GB。
80486微处理器的字长为32位,能直接访问、存储器的容量为4GB。
Pentium微处理器的字长为32位,能直接访问存储器的容量为4GB。
PentiumⅡ微处理器的字长为32位,能直接访问存储器的容量为64GB。
4.选择4倍的倍频器;选择内部时钟频率为450MHz的PentiumⅡ微处理器。
5.8086、80286微处理器可访问8位和16位寄存器,80386及其以上的微处理器可访问8位、16位和32位寄存器。
6.⑴AX是16位寄存器⑵BL是8位寄存器
⑶ECX是32位寄存器⑷EFLAGS是32位寄存器
⑸CS是16位寄存器⑹DH是8位寄存器
⑺BP是16位寄存器⑻EDI是32位寄存器
7.⑴BX、SI、DI⑵CS
⑶SP⑷DS、ES
8.⑴1234:
0005H⑵0EEF:
3455H
9.⑴PA=12000H⑵PA=21200H
⑶PA=26200HH⑷PA=A3B00H
⑸PA=1B000H⑹PA=3F12DH
10.⑴出现溢出,则OF=1⑵结果为零,则ZF=1
⑶结果为负数,则SF=1⑷按单步方式处理,则TF=1
⑸有辅助进位,则AF=1⑹开中断,则IF=1
⑺有借位,则CF=1⑻结果中有七个“1”,则PF=0
⑼带符号数FFH和01H相加,则溢出标志位OF=0
⑽在一个逻辑数中含有四个“1”,则奇偶标志位PF=1
三、完成下列各存储单元中数据的存放
1.2.
3.(20042H)=78H
(20044H)=34H
(20041H)=789AH
(20042H)=5678H
4.
习题3
一、选择题
1.C2.B3.D4.B
5.B6.B7.B8.B
9.C10.D11.B12.B
13.B、C14.C15.A
二、填空
1.构成存储单元的有效地址有位移量、基地址和变址三个元素。
2.⑴SS段的段地址=1250H;⑵栈顶的逻辑地址=1250:
0052H;
⑶栈底的物理地址=12600H;⑷存入字数据后(SP)=0050H。
3.⑴立即寻址⑵直接寻址
⑶变址寻址⑷变址寻址
⑸基址变址寻址⑹寄存器寻址
⑺寄存器间接寻址⑻基址变址寻址
4.⑴PA=2000H×10H+1000H=21000H
⑵PA=2000H×10H+0100H+0005H=20105H
⑶PA=1000H×10H+0200H+0300H=10500H
⑷PA=2000H×10H+0300H+0300H=20600H
⑸PA=1000H×10H+0200H+0300H+0300H=10800H
⑹PA=2100H×10H+0100H+0300H=21400H
⑺PA=2000H×10H+0100H-0004H=200FCH
⑻PA=2000H×10H+0200H+0300H+0250H=20750H
5.⑴(AX)=1000H
⑵PA=3000H×10H+1000H=31000H(AX)=3412H
⑶(BX)=1000H(AX)=1000H
⑷PA=3000H×10H+1000H=31000H(AX)=3412H
⑸PA=3000H×10H+1000H+1000H=32000H(AX)=7856H
⑹PA=3000H×10H+1000H+2000H=33000H(AX)=BC9AH
⑺PA=3000H×10H+1000H+2000H+1000H=34000H(AX)=F0DEH
⑻PA=3100H×10H+1000H=32000H(AX)=7856H
三、试指出执行下列指令后的结果
1.⑴(AL)=34H⑵(AL)=04H
⑶(AL)=04H⑷(AL)=3FH
⑸(AL)=35H⑹(AL)=39H
⑺(AL)=E8H⑻(AL)=0EH
⑼(AL)=1DH⑽(AL)=A3H
2.⑴(AL)=0AH⑵(AL)=80H
⑶(AL)=AFH⑷(AL)=00H
⑸(AL)=55H⑹(AL)=55H
3.⑴OF=1SF=0ZF=0AF=0PF=1CF=1
⑵OF=1SF=0ZF=0AF=0PF=0CF=1
⑶OF=0SF=0ZF=0AF=0PF=0CF=0
⑷OF=0SF=0ZF=0AF=0PF=0CF=0
四、指出下列指令哪些是非法指令,试说明错误原因。
1.非法指令(050)数值太大超过允许值
2.非法指令(031)操作数类型不匹配
3.合法指令
4.非法指令(059)非法使用CS寄存器
5.非法指令(052)操作数类型使用不当
6.合法指令
7.非法指令(046)同时使用多个基址寄存器
8.合法指令
9.非法指令(052)操作数类型使用不当(8086)
10.非法指令(019)指定的寄存器类型不是指令所要求的
11.非法指令(061)段寄存器使用不合法
12.非法指令(001)出现多个字符
五、区别下列各组指令
1.源操作数不同:
一个是立即数,另一个是存储单元的内容。
2.源操作数寻址方式不同:
一个是寄存器寻址,另一个是寄存器间接寻址。
3.装入BX的内容不同:
一个是MESS的偏移地址装入BX,另一个是MESS的内容装入BX。
4.装入的地址不同:
一个只是装入MESS的偏移地址,另一个同时装入MESS的偏移地址和段基值。
5.对进位标志位的影响不同:
一个是不改变进位标志位的值,另一个是将进位标志位请零。
6.对进位标志位的影响不同:
一个是影响所有状态标志,另一个是影响除AF以外的状态标志。
7.对进位标志位的影响不同:
一个是影响所有状态标志,另一个是影响除CF以外的状态标志。
8.执行指令后的结果不同:
一个是执行结果送回AX,另一个是执行结果不送回AX。
六、试分析执行下列程序完成什么功能
1.(AX)=(AX)×7
2.压缩的BCD码转换为二进制编码
七、用单条指令分别完成下列操作
1.CLC、ANDAL,AL、ORAL,AL、XORAL,AL
2.MOVAX,4629H
3.LDSBX,DATA
4.ADDDX,BX
5.SUBAX,036AH
6.ADDAL,AL、SHLAL,1
7.IMULBL
8.MOVCL,0、SUBCL,CL、XORCL,CL
9.ORDX,0E000H
10.ANDBL,0F0H
11.XORCL,0F0H
12.SARAX,1
八、编写指令序列完成下列的算术运算或逻辑运算
1.MOVCL,04H2.SHLAX,1
ROLAL,CLRCLDX,1
3.NOTAX4.SARDX,1
NOTDXRCRAX,1
ADDAX,16.MOVAL,B
ADCDX,0MOVBL,5
5.MOVAL,AIMULBL
ADDAL,BMOVBX,AX
DAAMOVAL,A
MOVC,ALCBW
ADDAX,BX
MOVBL,C
IDIVBL
MOVA,AL
7.MOVAL,B8.MOVCL,04H
ORAL,CROLAH,CL
ANDAL,AANDAL,0FH
MOVA,ALORAL,AH
习题4
一、选择题
1.A2.D3.AVAR的偏移量也是一个数值
4.B5.C6.B7.A、C
8.A、B、C
二、解答下列各题
1.⑴206⑵2⑶2FH⑷0FH
2.⑴2⑵1⑶1⑷4
⑸10⑹10⑺1⑻1
⑼20⑽10⑾1⑿4
3.⑴(AX)=200⑵(AX)=300⑶(AX)=100⑷(AX)=400
4.⑴L=1⑵L=20
5.VALONE=00FFHVALTOW=0FH
VALTHR=30VALFOU=20H
三、分析下列各题是否有语法错误
1.语法正确
2.语法正确
3.语法错误。
操作数类型不匹配,一个是字节,另一个是字。
4.语法正确
5.语法错误。
操作数类型不匹配,一个是字节,另一个是字。
6.语法正确
7.语法错误。
操作数类型不匹配,一个是字节,另一个是字。
8.语法正确
四、画图说明下列语句分配的存储空间及初始化数据值
1.2.M
M00H
42H00H
59H‘BYTE’01H
54H00H0,1,2
45H02H
0CH00H
12H00H重复2次
00H00H
02H01H
02H重复3次00H0,1,2
02H02H
00H重复2次00H
02HFBH
02H重复3次FFH-5
02H59H
42H‘BY’
45H
54H‘TE’
五、选择相应的伪指令语句
1.DATASEGMENT
TRINGDB‘Personalcomputer’
VALDDB12H,99H
VALHDB32H,0FAH
VALZDB10DUP(0)
VALWDW20DUP(?
)
DATAENDS
2.DATASEGMENTWORDPUBLIC‘DATA’
DB12,30,'ABCD'
DW20DUP(?
)
DATAENDS
六、编写汇编语言程序,实现下列操作
1.DATASEGMENT
ARRAYDW20,30,300,3000
TRINGDB‘BASED’
RESULTDW5DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVSI,6
MOVAX,ARRAY[SI]
MOVRESULT,AX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
2.
┆
MOVCX,0004H
MOVBX,0
REPAY:
MOVAX,ARRAY[BX]
MOVRESULT[BX],AX
INCBX
INCBX
LOOPREPAT
┆
3.
┆
MOVAX,ARRAY+2
MOVRESULT,AX
MOVAX,ARRAY+4
MOVRESULT+2,AX
┆
4.
┆
MOVAX,ARRAY
MOVRESULT,AX
MOVAX,ARRAY+2
MOVRESULT+2,AX
┆
习题5
一、选择题
1.A2.C3.C、D4.B、D
5.C6.D7.C8.C
二、指出下列指令序列的错误
1.比较有符号数的大小,不能使用无符号条件转移指令。
2.死循环,在循环体内不能为循环变量赋值。
3.死循环,不能满足循环终止条件。
4.在代码段之间不能使用转移指令。
5.使用堆栈指令不当,栈不平衡,子程序不能正确返回调用程序。
三、试指出执行下列指令后的结果
1.⑴(IP)=1000H转移地址=0200H×10H+1000H=03000H
⑵(IP)=(0300H×10H+1000H)=(04000H)=5000H
转移地址=0200H×10H+5000H=07000H
⑶(IP)=(0300H×10H+1000H+2000H)=(06000H)=8000H
转移地址=0200H×10H+8000H=10000H
2.VALUE=5
3.(AX)=0300H
4.(AX)=10×4=40
四、编写下列程序
1.求正八面体的体积
┆
ADB12;定义边长a
VDW?
┆
MOVAL,A
MOVBL,AL
MULBL
MOVBH,0
MULBX
MOVBX,47
MULBX
MOVBL,100
DIVBL
MOVV,AX
┆
2.计算下列函数值
-X当X<0
Y=X-5当0≤X≤10
X/5当X>10
┆
XDB0FH
YDB?
┆
MOVAL,X
CMPAL,0
JGEPOSI
NEGAL
JMPNEXT
POSI:
CMPAL,10
JGFNC
SUBAL,5
JMPNEXT
FNC:
CBW
MOVBL,5
IDIVBL
NEXT:
MOVY,AL
┆
3.求内存BCDBUF中10个字节压缩BCD数的和,结果送SUM缓冲区。
┆
BCDBUFDB23H,56H,15H,30H,45H,85H,51H,01H,0BFH,0F0H
COUNTDW10
SUMDW?
┆
XORAX,AX
MOVBX,0
MOVCX,COUNT
REPAT:
ADDAL,BCDBUF[BX]
DAA
ADCAH,0
DAA
INCBX
LOOPREPAT
MOVSUM,AX
┆
4.计算S=2+4+6+……+200。
┆
MOVBX,2
XORAX,AX
REPAT:
ADDAX,BX
ADDBX,2
CMPBX,200
JAFINISH
JMPREPAT
FINISH:
┄
┆
5.计算
┆
ARRAYDBa1、b1、a2、b2、a3、b3、a4、b4
┆
XORBX,BX
MOVDX,BX
MOVSI,AX
MOVCX,4
REPAT:
MOVAL,ARRAT[SI]
INCSI
MULARRAY[SI]
ADDBX,AX
ADCDX,0
INCSI
LOOPREPAT
MOVWORDPTRRESULT,BX
MOVWORDPTRRESULT+2,DX
┆
6.将BUFFER为开始的100个连续单元清零
┆