编辑: 黎文定 | 2019-09-27 |
第一章 基础知识
第二章 80x86计算机组织
第三章 指令系统和寻址方式
第四章 汇编语言程序格式
第五章 循环与分支程序设计
第六章 子程序设计
第七章 高级汇编语言技术
第八章 输入输出程序设计
第一章 基础知识 P14,
1、
2、
6、7题.
第一章 基础知识 C 1.1 1.1 10进制转2进制:369D 2| 3692|
184 …
1 2|
092 … 02|
046 … 02|
023 … 02|
011 … 12|
005 … 12|
002 … 12|
001 …
0 000 … 1答案:369D =
1 0111 0001B = 171H
第一章 基础知识 C 1.2 1.2 2进制转
10、16进制10 1101B转16进制分组:从最低位开始,每4位为1组10, 1101转换:将每组中的4位2进制数转换成对应的16进制符号 2DH10 1101B转10进制按位展开,求加权和:
第一章 基础知识 C 1.6 1.6 8位二进制数,按不同编码转换为10进制数.D8H:无符号数、 补码无符号数:D8H =
1101 1000B = 216D有符号数(补码):[X]补=D8H =
1101 1000B,所以 X0方法1:X = -(-X)X]补)[-X]补求解:[X]补求反:
0010 0111末位加1 :
0010 1000 B = 28H = 40DX = -(-X)X]补) = -40D
第一章 基础知识 C 1.6 1.6 8位二进制数,按不同编码转换为10进制数.D8H:无符号数、 补码有符号数(补码):[X]补=D8H =
1101 1000B,所以 X0方法2:X = -|X||X|求解:[X]补=28 - |X||X| = 100H - D8H = 28H = 40DX = -|X| = -40DFFH:无符号数、带符号补码无符号数:FFH =
1111 1111B = 255D带符号数(补码):-1D
第一章 基础知识 C 1.7 1.7 给定8位二进制数,转换为10进制数与ASCII码4FH数值:4FH =
100 1111B = 79DASCII码:'
O'
2BH数值:2BH =
10 1011B = 43DASCII码:'
+'
73H数值:73H =
111 0011B = 115DASCII码:'
s'
第二章 80x86计算机组织 P33,
2、
3、
4、9题.
第二章 80x86计算机组织 ― 2.2 2.2:画出16位字在存储器中的存放情况.(B0) = 1EE5,(B3) = 2A3C. … … B4 B3 B2 B1 B0 … 地址 内容 E5 1E 3C 2A
第二章 80x86计算机组织 ― 2.3 2.3:读出内存单元的内容.22H字节单元:ABH24H字节单元:EFH21H字单元:AB34H22H字单元:CDABH … …
30024 EF
30023 CD
30022 AB
30021 34
30020 12 … … 地址 存储器
第二章 80x86计算机组织 ― 2.4 2.4:实模式下求物理地址.逻辑地址:3017:000A3017H * 16D + 0AH = 30170H + 0AH = 3017AH逻辑地址:3015:002A3015H * 16D + 2AH = 30150H + 2AH = 3017AH逻辑地址:3010:007A3010H * 16D + 7AH = 30100H + 7AH = 3017AH总结:同一物理地址,可用不同逻辑地址表示.
第二章 80x86计算机组织 ― 2.9 2.9:CPU、存储器、堆栈、IP、SP、状态标志CPU?M:分析、控制、执行指令的部件,由ALU与寄存器等组成.存储器?C:存储程序、数据等信息的记忆装置,微机有RAM与ROM两种.堆栈?D:以后进先出方式工作的存储空间.IP?B:指示下一条指令的地址.SP?A:保存当前栈顶地址的寄存器.状态标志?L:记录指令操作结果的标志.控制标志?K:控制操作的标志,如DF位.段寄存器?J:保存各段起始地址的寄存器.
第二章 80x86计算机组织 ― 2.9 物理地址?F:惟一代表存储空间中每字节单元的地址汇编语言?H:用指令的助记符、符号地址、标号等符号书写程序的语言.机器语言?G:能被计算机直接识别的语言.汇编程序?E:把汇编语言程序翻译成机器语言程序的系统程序.连接程序?I:把若干模块连接成可执行文件的系统程序指令?O:告诉CPU要执行的操作,在程序运行时执行伪指令?N:由汇编程序在汇编过程中执行的指令.
第三章 指令系统和寻址方式 P107,
1、
2、
3、
4、
5、
8、
13、
14、
15、
17、
18、
19、
23、
25、
27、
29、
30、
32、
33、
35、
37、
38、
49、51题.将AL中存储的二进制数值转换为十六进制字符串,结果存储于内存变量Str开始的两个字节单元中.例: (AL) = 2FH,则(STR) = '
2'
STR+1) = '
F'
.提示:使用XLAT、逻辑运算、移位、数据传送指令.
第三章 指令系统和寻址方式 ― 3.1 3.1题:设定条件 (BX) = 637DH, (SI) = 2A9BH, 位移量 = 7237H,求EA立即寻址:操作数在指令码而不是存储器中,没有EA.直接寻址:EA = DISP = 7237H使用BX的寄存器寻址:操作数存放在BX中,没有EA.使用BX的间接寻址:EA = 基址 = (BX) = 637DH
第三章 指令系统和寻址方式 ― 3.1 3.1题:使用BX的寄存器相对寻址:EA = 基址+Disp = 637DH+7237H = D5B4H基址变址寻址:EA = 基址 + 变址 = 637D + 2A9B = 8E18.相对基址变址寻址:EA = 基址 + 变址 + DISP = 637D + 2A9B +
7237 =
1 004F.
第三章 指令系统和寻址方式 ― 3.2 3.2题:根据要求写指令BX与DX内容相加,结果存入DX.ADD DX, BX用基址(BX)变址(SI)寻址方式把字节变量与AL求和,结果送AL.ADD AL, [BX + SI]用BX和位移量0B2H的寄存器相对寻址方式把字变量和(CX)求和,结果送回字变量.ADD [BX + 0B2H], CX
第三章 指令系统和寻址方式 ― 3.2 3.2题:根据要求写指令用位移量0524H的直接寻址方式把字变量与常数2A59H求和,结果送回字变量.ADD WORD PTR [0524H], 2A59H把数0B5H与(AL)求和,结果送回AL.ADD AL, 0B5H
第三章 指令系统和寻址方式 ― 3.3 3.3题: BLOCK字数组第6个字送DX寄存器(下标为5)EA = BLOCK +
5 * 2;
MOV DX, ???寄存器间接寻址:EA = [基址 | 变址].MOV BX, OFFSET BLOCK[10]MOV DX, [BX]寄存器相对寻址:EA = [基址 | 变址] + DISP.MOV SI, 10MOV DX, BLOCK[SI]基址变址寻址:EA = [基址] + [变址].LEA BX, BLOCKMOV SI, 10MOV DX, [BX][SI] +12 B[6] +10 B[5] +8 B[4] +6 B[3] +4 B[2] +2 B[1] Block B[0] 地址 内容
第三章 指令系统和寻址方式 ― 3.4 3.4题:已知各寄存器状态,求下列指令执行后AX的内容.MOV AX, 1200HMOV AX, BXMOV AX, [1200H]MOV AX, [BX]MOV AX, 1100[BX]MOV AX, [BX][SI]MOV AX, 1100[BX][SI] B7 4C …
65 … 2A …
78 56
34 12
21200 20100
20101 20102
20103 21201
21202 21203 DS
2000 BX
0100 SI
0002
第三章 指令系统和寻址方式 ― 3.5 3.5题:求转移指令的目标地址.CS:IP = 0200:2BC0, 位移量D = 5119, BX = 1200, DS = 212A, (224A0) = 0600, (275B9) = 098A段内直接寻址IP = (IP) + DISP = 2BC0 +
5119 = 7CD9使用BX的寄存器间接寻址的段内间接寻址IP = ((DS)*16D + (BX)) = (212A0+1200)= (224A0) = 0600使用BX的寄存器相对寻址的段内间接寻址IP = ((DS)*16D + (BX) + Disp) = (212A0 +
1200 + 5119) = (275B9) = 098A
第三章 指令系统和寻址方式 ― 3.8 3.8题:求源操作数的寻址方式与物理地址.(DS) = 2000, (ES) = 2100, (SS) = 1500,(SI) = 00A0, (BX) = 0100, (BP) = 0010,OFFSET VAL = 0050MOV AX, 0ABH 立即寻址MOV AX, BX寄存器寻址 MOV AX, [100H]直接寻址PA = (DS) *
16 + 100H = 20100HMOV AX, VAL直接寻址PA = (DS) *
16 + OFFSET VAL = 20050HMOV AX, [BX]寄存器间接寻址PA = (DS) *
16 + (BX) = 20100H
第三章 指令系统和寻址方式 ― 3.8 3.8题:求源操作数的寻址方式与物理地址.(DS) = 2000, (ES) = 2100, (SS) = 1500,(SI) = 00A0, (BX) = 0100, (BP) = 0010,OFFSET VAL = 0050MOV AX, ES:[BX]寄存器间接寻址PA = (ES) *
16 + (BX) = 21100HMOV AX, [BP]寄存器间接寻址PA = (SS) *
16 + (BP) = 15010HMOV AX, [SI]寄存器间接寻址PA = (DS) *
16 + (SI) = 200A0........