汇编语言第1章 汇编语言基础知识

合集下载

新版汇编语言程序设计习题答案(钱晓捷主编)电子教案

新版汇编语言程序设计习题答案(钱晓捷主编)电子教案

新版汇编语言程序设计习题答案(钱晓捷主编)新版汇编语言程序设计习题答案(钱晓捷主编)第一章汇编语言基础知识1.1、简述计算机系统的硬件组成及各部分作用1.2、明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB1.3、什么是汇编语言源程序、汇编程序、目标程序?1.4、汇编语言与高级语言相比有什么优缺点?1.5、将下列十六进制数转换为二进制和十进制表示(1)FFH (2)0H (3)5EH (4)EFH(5)2EH (6)10H (7)1FH (8)ABH1.6、将下列十进制数转换为BCD码表示(1)12 (2)24 (3)68 (4)127(5)128 (6)255 (7)1234 (8)24581.7、将下列BCD码转换为十进制数(1)10010001 (2)10001001 (3)00110110 (4)10010000(5)00001000 (6)10010111 (7)10000001 (8)000000101.8、将下列十进制数分别用8位二进制数的原码、反码和补码表示(1)0 (2)-127 (3)127 (4)-57(5)126 (6)-126 (7)-128 (8)681.9、完成下列二进制数的运算(1)1011+1001 (2)1011-1001 (3)1011×1001 (4)10111000÷1001(5)1011 ∧~1011 (8)1011 ⊕ 1001 1001(6)1011 ∨1001(7)1.10 数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0dh、0ah对应的是什么字符?1.11、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是10进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符?1.12、简述Intel 80x86系列微处理器在指令集方面的发展。

习题解答

习题解答

第1章汇编语言基础知识习题解答1.1 什么是汇编语言?汇编语言的特点是什么?答:为了克服机器语言难以记忆、表达和阅读的缺点,人们采用具有一定含义的符号作为助忆符,用指令助忆符、符号地址等组成的符号指令称为汇编格式指令(或汇编指令)。

汇编语言是汇编指令集、伪指令集和使用它们规则的统称。

汇编语言的特点是:(1)执行速度快。

(2)程序短小。

(3)可以直接控制硬件。

(4)可以方便地编译。

(5)辅助计算机工作者掌握计算机体系结构。

(6)程序编制耗时,可读性差。

(7)程序可移植性差。

1.2 把下列十进制数转换成二进制数、八进制数、十六进制数。

① 127 ② 1021 ③ 0.875 ④ 6.25答:① 1111111B;177Q;7FH ② 1111111101;1775Q;3FDH③ 0.111 B;0.7Q;0.EH ④ 110.01B;6.2Q;6.4H1.3把下列二进制数转换成十进制数。

① 1001.11 ② 101011.10011 ③ 111.011 ④1011.1答:① 9.75D ② 43.59375D ③ 7.375D ④ 11.5D1.4 把下列八进制数转换成十进制数。

① 573.06 ② 75.23 ③ 431.7 ④ 123.45答:① 379.09375D ② 61.296875D ③ 281.875 ④83.5781251.5 把下列十六进制数转换成十进制数。

① 0D5.F4 ② 8BA.7C ③ 0B2E.3A ④ 6EC.2D答:① 213.953125D ②2234.484375 ③2862.2265625 ④1772.175781251.6 把下列英文单词转换成ASCII编码的字符串。

① Upper ② Blow ③ Computer ④ What答:① 55H,70H,70H,65H,72H ② 53H,6CH,6FH,77H③ 43H,6FH,6DH,70H,75H,74H,65H,72H ④ 57H,68H,61H,74H1.7求下列带符号十进制数的8位基2码补码。

汇编语言基础知识

汇编语言基础知识
转换从最低位开始
例 0. 1
01
0
01





÷2
÷2 ÷2
÷2
÷2
÷2
0.640625 0.28125 0.5625 0.125 0.25 0.5
0.101001B=0.640625D
24
5. 二进制与八进制和十六进制间的转换
二进制与八进制和十六进制之间的对应关系很简单: 三位二进制数对应一位八进制数,四位二进制数对 应一位十六进制数。
第一章 基础知识
本章主要学习内容: 1.汇编语言的一般概念 2.学习和使用汇编语言的目的 3.进位计数制及其相互转换 4.带符号数的表示 5.字符的表示 6.基本逻辑运算
4
§1.1 汇编语言的一般概念
计算机程序设计语言可分为机器语言、高级 语言和汇编语言三类。
1. 机器语言 机器语言就是把控制计算机的命令和各种数83. Nhomakorabea汇编语言
(1)定义 虽然高级语言方便了人对计算机的使用,但
其运行效率较低。在一些应用场合,如系统管 理,实时控制等,难于满足要求。因此又希望使 用机器语言。
为了便于记忆和阅读,使用字母和符号来 表示机器语言的命令,用十进制数或十六进制 数来表示数据,这样的计算机程序设计语言就 称为汇编语言。
18
例:将325转换为二进制数,直到余数为0。 首先确定二进制数的最高位 因为29(512)>325>28(256)。因此从K8位开始比较。
减数比较
Ki
325-256=69
K8
69<128
K7
69-64=5
K6
5<32
K5
5<16

汇编语言

汇编语言

连接程序(LINK.EXE)
目标程序 1(.OBJ)
目标程序 m(.OBJ)
连 连 接 接
执行程 序 (.EXE)
… 库文件 1(.LIB) 库文件 n(.LIB) …
1.3 计算机的数据表示 1.3.1 数制及其转换 计算机内使用的是二进制数 数制 十进制:十进制是用0 十进制:十进制是用0,1,2,3,4,5,6,7,8,9 十个数码来表示数且遵循“逢十进一” 十个数码来表示数且遵循“逢十进一”规则的数制。 一个任意的十进制整数N可以表示为:AmAm一个任意的十进制整数N可以表示为:AmAm-1…Ao, Ao, 即 Am、Am-1、…、Ao可取值0~9十个数码中的任意一 Am、AmAo可取值0 个;10m、10m个;10m、10m-1、…、100分别是十进制数每位数 100分别是十进制数每位数 字的权;10称为十进制数的基数。 字的权;10称为十进制数的基数。
1.1.4三种语言的特点比较
机器语言是由0 机器语言是由0、1代码组成的面向机器的语言。机器语言程序的编 写、阅读和调试都十分困难,但它是计算机可直接识别执行的语言 程序,占内存少,执行速度快。 与机器语言相比,汇编语言易于理解和记忆,汇编语言程序也易于 编写、阅读和调试。由于其语句与机器指令语句一一对应,所以具 有占内存少、执行速度快的特点,并且能直接控制计算机的硬件设 备,充分发挥计算机的硬件功能。 高级语言的主要特点是:脱离具体的机器,面向过程,是一种类似 于自然语言和数学描述语言的程序设计语言。高级语言程序易于编 写、阅读和调试,且可移植性好。
二进制数与八进制数之间的转换 而二进制数与八进制数之间正好又有一种 特殊的关系,即2 =8,也就是说3 特殊的关系,即23=8,也就是说3位二进制 数刚好对应一位八进制数,反之亦然,所 以在计机中人们也常用八进制数来表示 二进制数。

钱晓捷新版汇编语言程序设计习题答案(1-4)

钱晓捷新版汇编语言程序设计习题答案(1-4)

钱晓捷新版汇编语言程序设计习题答案第一章汇编语言基础知识1.17、举例说明CF和OF标志的差异。

溢出标志OF和进位标志CF是两个意义不同的标志进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确•例1:3AH + 7CH=B6H无符号数运算:58+124=182,范围内,无进位有符号数运算: 58+124=182 ,范围外,有溢出•例2:AAH + 7CH=(1)26H无符号数运算:170+124=294,范围外,有进位有符号数运算:-86+124=28 ,范围内,无溢出1.20、8086有哪4种逻辑段,各种逻辑段分别是什么用途?(解答)代码段(Code Segment)用来存放程序的指令序列。

处理器利用CS : IP取得下一条要执行的指令•堆栈段(Stack Segment)确定堆栈所在的主存区域。

处理器利用SS : SP操作堆栈中的数据•数据段(Data Segment)存放当前运行程序所用的数据。

处理器利用DS : EA存取数据段中的数据•附加段(Extra Segment)是附加的数据段,也用于数据的保存。

处理器利用ES : EA存取数据段中的数据第二章8086指令系统2.1已知DS = 2000H、BX = 0100H、SI = 0002H,存储单元[20100H] ~ [20103H]依次存放12 34 56 78H,[21200H] ~ [21203H]依次存放2A 4C B7 65H,说明下列每条指令执行完后AX寄存器的内容。

(1) mov ax,1200h ;AX=1200h(2) mov ax,bx ; AX=0100h(3) mov ax,[1200h] ; AX=4C2Ah(4) mov ax,[bx] ; AX=3412h(5) mov ax,[bx+1100h] ; AX=4C2Ah(6) mov ax,[bx+si] ; AX=7856h(7) mov ax,[bx][si+1100h] ; AX=65B7h2.2指出下列指令的错误(1) mov cx,dl 两操作数类型不匹配(2) mov ip,ax IP 指令指针禁止用户访问(3) mov es,1234h 立即数不允许传给段寄存器(4) mov es,ds 段寄存器之间不允许传送(5) mov al,300 两操作数类型不匹配(6) mov [sp],ax 目的操作数应为[ BP ](7) mov ax,bx+di 源操作数应为 [BX+DI](8) mov 20h,ah 立即数不能作目的操作数2.3已知数字0 ~ 9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table为首地址(设为200H)的连续区域中。

王爽汇编语言第二版(全部)

王爽汇编语言第二版(全部)
本课件由汇编网()制作提供
1.1 机器语言
机器语言是机器指令的集合。 机器指令展开来讲就是一台机器可
以正确执行的命令。
本课件由汇编网()制作提供
1.1 机器语言
指令:01010000 (PUSH AX) 电平脉冲:
本课件由汇编网()制作提供
从上面我们知道CPU是如何进行数据读写 的。可是我们如何命令计算机进行数据 的读写呢?
本课件由汇编网()制作提供
1.7 CPU对存储器的读写
对于8086CPU,下面的机器码能够完成 从3号单元读数据:
机器码: 101000000000001100000000 含义:从3号单元读取数据送入寄存器AX CPU接收这条机器码后将完成上面所述的读
1.6 存储单元
对于大容量的存储器一般还用以下单位 来计量容量(以下用B来代表Byte):
1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB
磁盘的容量单位同内存的一样,实际上 以上单位是微机中常用的计量单位。
本课件由汇编网()制作提供
控制总线上发送的控制信息
本课件由汇编网()制作提供
1.10 控制总线
本课件由汇编网()制作提供
1.10 控制总线
前面所讲的内存读或写命令是由几 根控制线综合发出的:
其中有一根名为读信号输出控制线负 责由CPU 向外传送读信号,CPU 向该 控制线上输出低电平表示将要读取数 据;
地址总线 数据总线 控制总线
图示
本课件由汇编网()制作提供
1.7 CPU对存储器的读写
总线在逻辑上划分的图示:
本课件由汇编网()制作提供
1.7 CPU对存储器的读写

汇编语言程序设计(第四版)【课后答案】

汇编语言程序设计(第四版)【课后答案】

汇编语言程序设计第四版【课后习题答案】第1章汇编语言基础知识〔习题1.1〕简述计算机系统的硬件组成及各部分作用。

〔解答〕CPU:包括运算器、控制器和寄存器组。

运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为处理单元提供所需要的数据。

存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。

外部设备:实现人机交换和机间的通信。

〔习题1.2〕明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB。

〔解答〕主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。

辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速度慢。

RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电后能保存信息。

存储器由大量存储单元组成。

为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常称做I/O端口。

KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。

〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序?〔解答〕用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编译通过的程序就是目标程序。

〔习题1.4〕汇编语言与高级语言相比有什么优缺点?〔解答〕汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。

汇编语言学习笔记

汇编语言学习笔记

汇编语言学习笔记《汇编语言》--王爽前言学习汇编目的:充分获得底层编程体验;深刻理解机器运行程序的机理。

原则:没有通过监测点不要向下学习;没有完成当前实验不要向下学习。

第一章基础知识有三类指令组成汇编语言:汇编指令;伪指令;其他符号。

8bit = 1byte = 一个存储单元有n根地址线,则可以寻址2的n次方个内存单元。

1.1节--1.10节小结(1)汇编指令是机器指令的助记符,同机器指令一一对应。

(2)每一种cpu都有自己的汇编指令集。

(3)cpu可以直接使用的信息在存储器中存放。

(4)在存储器中指令和数据没有任何区别,都是二进制信息。

(5)存储单元从零开始顺序编号。

(6)一个存储单元可以存储8个bit,即八位二进制数。

(7)每一个cpu芯片都有许多管脚,这些管脚和总线相连。

也可以说,这些管脚引出总线。

一个cpu可以引出的三种总线的宽度标志了这个cpu不同方面的性能。

地址总线的宽度决定了cpu的寻址能力;数据总线的宽度决定了cpu与其他器件进行数据传送时的一次数据传送量;控制总线的宽度决定了cpu对系统中其他器件的控制能力。

监测点:1KB的存储器有1024个存储单元?存储单元的编号从0到1023.内存地址空间:最终运行程序的是cpu,我们用汇编编程时,必须要从cpu的角度思考问题。

对cpu来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受cpu寻址能力的限制。

这个逻辑存储器即是我们所说的内存地址空间。

第二章寄存器(cpu的工作原理)mov ax, 2add ax, axadd ax, axadd ax, ax(1)cpu中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址;(2)段地址和偏移地址通过内部总线送人一个称为地址加法器的部件;(3)地址加法器将两个16位地址合成为一个20位的物理地址;(4)地址加法器通过内部总线将20位物理地址送人输入输出控制电路;(5)输入输出控制电路将20位物理地址送上地址总线;(6)20位物理地址被地址总线传送到存储器;段地址*16+偏移地址= 物理地址的本质含义内存并没有分段,段的划分来自cpu。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

9
1.2.1 带符号数的补码表示
3. 补码 正数的补码表示与正数的原码相同,即最高符号位用0表 示正,其余位为数值位。负数的补码最高符号位用1表示 负数。负数的补码表示是正数的补码各位求反(包括符号 位),末位加1构成。将负数的补码转换成真值,则将补 码末位减1,各位求反,再加上负号。 例1.7 求补码1001 0110B的真值。 分析:补码1001 0110B的最高位为1,说明是负数的补码, 将例1.6的过程反过来做,即减1后,各位求反,最后加上 负号。 [1001 0110B-1]求反=[1001 0101B]求反 =0110 1010B=106 则[1001 0110B]真值=-106 10
计算机怎么知道这些组合的意思?
?

2
1.1.1 CPU指令
• CPU指令:0和1的一些组合。 每款CPU在设计时就规定了一系列与其硬件 电路相配合的指令系统。有了CPU指令集的文档, 就可以通过这个编写CPU认识的机器代码了。 所以,对于不同CPU来说可能会有不同的机 器码。
3
1.1.2 计算机程序设计语言
5
1.1.4 学习汇编语言的主要 目的
1.一些特定的场合需要使用汇编语言。 2. 有助于深入地理解计算机硬件,掌握计算 机硬件、操作系统、应用程序之间的交互 工作。 3. 帮助加深对高级语言的理解。 4. 是学习后续专业课程的基础。
6
1.2.1 带符号数的补码表示
1. 原码 最高有效位表示符号(0-正数,1-负数), 其他位表示数值。在计算机中用原码作加 减运算是不方便的。
11
1.2.2 ASCII码
例1.8 (1)数字值0~9和数字字符’0’~‘9’之间的转 换关系;(2)十六进制数0AH~0FH和字 符’A’~’F’之间的转换关系。
(2)由于字符’A’~’F’对应的ASCII码:41H~46H,与16进 制数0AH~0FH之间相差了37H, ’A’~’F’0AH~0FH,则[‘A’~’F’]ASCII码-37H=0AH~0FH; 0AH~0FH’ A’~’F’,则(0AH~0FH) +37H= [‘A’~’F’]ASCII 码。
12
1.2.2 ASCII码
例1.9 大小写字母之间的转换关系。
从表1.1可见,大写字母’A’~‘Z’的ASCII码:41H-5AH; 小写字母’a’~’z’的ASCII码:61H~7AH。大小写字母之 间的ASCII码相差了20H。所以大小写字母之间的转换即 为加减20H。 大写字母小写字母,则[大写字母]ASCII码+20H= [小写字 母]ASCII; 小写字母大写字母,则[小写字母]ASCII码-20H= [大写字 母]ASCII。 13
8
1.2.1 带符号数的补码表示
3. 补码 正数的补码表示与正数的原码相同,即最高符号位用0表 示正,其余位为数值位。负数的补码最高符号位用1表示 负数。负数的补码表示是正数的补码各位求反(包括符号 位),末位加1构成。将负数的补码转换成真值,则将补 码末位减1,各位求反,再加上负号。 例1.6 X=106=0110 1010B,[X]补=0110 1010B X=-106,[X]补=[106补码]求反+1 =[0110 1010B]求反+1 =1001 0101B+1=1001 0110B
例1.4 [106]原码=0 1101010B [-106]原码=1 1101010B
7
1.2.1 带符号数的补码表示
2. 反码 最高有效位表示符号(0-正数,1-负数),其他 位表示数值。正数的反码与正数的原码相同;负 数的反码是正数的原码(包括符号位)按位取反。 例1.5 [106]反码=[106]原码=0 1101010B [-106]反码=[106原码]求反=1 0010101B
1.2.2 ASCII码
例1.8 (1)数字值0~9和数字字符’0’~‘9’之间的转 换关系;(2)十六进制数0AH~0FH和字 符’A’~’F’之间的转换关系。
(1)从表1.1可见,数字字符’0’~‘9’对应的ASCII码: 30H~39H,数字字符的ASCII码和数字值之间相差了30H, 数字字符数字值,则[数字字符]ASCII-30H=数字值; 数字值数字字符,则数字值+30H=[数字字符]ASCII。
计算机编程语言的发展经历了 机器语言、汇编语言和高级语言。 其中,前两种语言与机器密切相关,称为低级语 言。作为计算机“母语”的低级语言,会伴随计 算机本身永存于世。
1. 机器语言 2. 汇编语言 3. 高级语言
4
1.1.3 汇编语言的特点
1. 与机器相关性
2. 执行的高效率
3. 编写程序和调试的复杂性
第1章 汇编语言基础知识
1.1 为什么学习汇编语言 1.1.1 CPU指令 1.1.2 计算机程序设计语言 1.1.4 汇编语言的特点 1.1.4 学习汇编语言的主要目的 1.2 数据表示 1.2.1 带符号数的补码表示 1.2.2 ASCII码

1.1.1 CPU指令
• 因为在计算机中指令和数据都用二进制来表 示,也就是说它只认识0和1这样的数字。最早期 的计算机程序通过在纸带上打洞来人工操操作的 方式来模拟0和1,根据不同的组合来完成一些操 作。后来直接通过直0和1编程程序,这种称之为 机器语言。
相关文档
最新文档