微机原理第四章
- 格式:ppt
- 大小:707.00 KB
- 文档页数:74


微机原理与接口技术(第二版)第四章汇编语言程序设计
[写在前面]本参考答案供同学们在写作业的时候,遇到想不通的题时进行参考。请不
要直接copy答案,否则对自己没有好处的。多思考,才有进步。
本参考答案中的程序及框图不唯一,只要符合题意的即可。
思考题与习题参考答案
4.1假设数据段DATA定义如下,请计算下列程序分别执行后AX寄存器的内容。
DATASEGMENT
ORG100H
TABLEDB20,30,40,50,60,70,80
INDEXDW3
COUNTEQU$-TABLE
DATAENDS
(1)MOVAX,COUNT
(2)MOVAX,SIZETABLE
(3)MOVAX,WORDPTRTABLE.
(4)MOVAX,WORDPTRTABLE+1
(5)MOVAL,TABLE
MOVAH,BYTEPTRINDEX+1
(6)LEABX,TABLE
ADDBX,INDEX
MOVAX,[BX]
参考:(1)AX=9
(2)AX=7
(3)AX=1E14H/7700
(4)281EH/10270
(5)0014H
(6)3C32H
4.2假设数据段DATA定义如下,请画出该数据段DATA在内存中的存储示意图,要求按字节
组织且用十六进制补码表示。DATASEGMENT
STRINGDB‘12'
LENEQU$-STRING
ADDRDWSTRING
DW1DW2DUP(?,-1)
DD1DD12345678H
DW2DWLEN
DATAENDS
4.3设A、B和C均为16位带符号数,编写程序找出其中的最大值和最小值,分别存放到
MAX和MIN单元中。4.6编写程序,找出自ARRAY开始的50个带符号数(字)中绝对值最大
的数并存入MAXDATA单元中。4.7编写程序,计算自STRING开始的100个无符号数(字节)的和,其
中和为16位数,并把结果存放在SUM字单元中。4.8编写程序,分别统计STRING字符串(以‘$’为结束符)中大写字母字符(‘A’~‘Z')
第四章课后作业(6—27)
6.试按下列要求分别编制程序段。
(1)把标志寄存器中符号位SF置“1”。
(2)寄存器AL中高、低四位互换。
(3)由寄存器AX、BX组成一个32位带符号数(AX中存放高16位),试求这个数的负数。
(4)现有三个字节存储单元A、B、C,在不使用ADD和ADC指令的情况下,实现(A)+(B) C。
(5)用一条指令把CX中的整数转变为奇数(如原来已是奇数,则CX中数据不变,如原来是偶数,则(CX)+1 形成奇数)。
答:
(1) LAHF
OR AH,80H
SAHF
(2) MOV CL,4
ROL AL,CL
(3) MOV CX,0
NEG BX
JC CHG
JMP GO
CHG: MOV CX,1
GO: NEG AX
SUB AX,CX
(4) MOV CL,A
MOV AL,B
MOV X,AL
CHECK:INC X
DEC CL
JNZ CHECK
(5) OR CX,0001H
7.试给出下列各指令的机器目标代码。
(1)MOV BL,12H [SI]
(2)MOV 12H [SI],BL
(3)SAL DX,1
(4)AND 0ABH [BP] [DI],1234H
答:(1)100010 1 0 01 011 100 00010010=8A5C12H
(2)100010 0 0 01 011 100 00010010=885C12H
(3)110100 0 1 11 100 010=0D1E2H
(4)100000 0 1 10 100 011 10101011 00000000 00110100 00010010
=81A3AB003412H
8.执行下列指令:
STR1 DW ‘AB’
STR2 DB 16DUP(?)
2016
1 / 18 微机原理第4章练习题及答案
第4章 80x86指令系统
一、自测练习题
㈠ 选择题 1.MOV AX,[BX+SI]的源操作数的物理地址是( )。 A.(DS)×16+(BX)+(SI) B. (ES)×16+(BX)+(SI) C.(SS)×10H+(BX)+(SI) D.(CS)×10H+(BX)+(SI)
2.MOV AX,[BP+Sl]的源操作数的物理地址是( )。
A.(DS)×10H+(BP)+(SI) A. (ES)×16+(BP)+(SI)
C.(SS)×16+(BP)+(SI) D.(CS)×10H+(BP)+(SI)
3.MOV AX,ES:[BX+SI]的源操作数的物理地址是( )。 A.(DS)×16+(BX)+SI) B.(ES)×10H+(BX)+(SI) C.(SS)×10H+(BX)+SI) D.(CS)×16+(BX)+(SI)
4.JMP WORD PTR[DI]是( )。 A.段内间接转移
B.段间间接转移 C.段内直接转移 D.段间直接转移
5.JMP FAR PTR BlOCK(BLOCK是符号地址)是( )。
A.段内间接转移 B.段间间接转移 C..段内直接转移 D.段间直接转移 6.INC指令不影响( )标志。
A.OF B.CF C.SF D.ZF 7.条件转移指令
2016
2 / 18 JNE的测试条件是( )。 A.ZF=1 B.CF=0
C.ZF=0 D.CF=1 8.下列指令中,有语法错误的是( )。 A.MOV [SI],[DI] B.IN AL,DX
80x86微机原理参考答案
第一章计算机基础(P32)
1-1电子管,晶体管,中小规模集成电路、大规模、超大规模集成电路。
1-2把CPU和一组称为寄存器(Registers)的特殊存储器集成在一片大规模集成电路或超大规模集成电路封装之中,这个器件才被称为微处理器。以微处理器为核心,配上由大规模集成电路制作的只读存储器(ROM)、读写存储器(RAM)、输入/输出、接口电路及系统总线等所组成的计算机,称为微型计算机。微型计算机系统是微型计算机配置相应的系统软件,应用软件及外部设备等.
1-3写出下列机器数的真值:
(1)01101110 (2)10001101
(3)01011001 (4)11001110
答案:
(1)+110 (2)-13(原码) -114(反码)-115(补码)(3)+89 (4)-78(原码)-49(反码)-50(补码)
1-4写出下列二进制数的原码、反码和补码(设字长为8位):
(1)+010111 (2)+101011
(3)-101000 (4)-111111
答案:
(1)[x]原=00010111 [x]反= 00010111 [x]补= 00010111
(2)[x]原=00101011 [x]反= 00101011 [x]补= 00101011
(3)[x]原=10101000 [x]反= 11010111 [x]补= 11011000
(4)[x]原=10111111 [x]反= 11000000 [x]补=11000001
1-5 当下列各二进制数分别代表原码,反码,和补码时,其等效的十进制数值为多少?
(1)00001110 表示原码14,反码14,表示补码为14
(2)11111111 表示原码-127,反码-0,表示补码为-1
(3)10000000 表示原码-0,反码-127,表示补码为-128 (4)10000001 表示原码-1,反码-126,表示补码为-127