汇编语言 第1章 序
第1章 序
1.1 1.2 1.3 1.4 1.5
目标文件 内联汇编/嵌入式汇编 汇编语言的概念 基本数据类型 数据的存储
软件学院 – 王逍 v2018 2
1.1 目标文件
程序设计过程:
源程序→编译/链接→目标程序/可执行程序。
*.OBJ文件,或目标代码,机器指令构成的程序, 是2进制语言程序,是计算机最终可以执行的程序形式。
软件学院 – 王逍 v2018 7
1.3 汇编语言的概念
机器语言
把CPU能够直接识别并遵照执行的指令称为机器指令 机器指令一般由操作码和操作数两部分构成 操作码指出要进行的操作或运算
例如,加、减、传送等
操作数指出参与操作或运算的对象,也指出操作或运算结果存
放的位置
例如,寄存器、存储单元和数据等
//L3
//L4
软件学院 – 王逍 v2018 16
软件学院 – 王逍 v2018 8
1.3 汇编语言的概念
汇编格式指令
人们采用便于记忆、并能描述指令功能的符号来表示指令的操
作码。这些符号被称为指令助记符 用符号表示操作数,如寄存器、存储单元地址等 由指令助记符、操作符号和常量等表示的指令被称为汇编格式 指令 汇编格式指令的一般格式:
1.1 目标文件
设置编译/链接选项:(在VS IDE,Release版本)
在项目属性页对话框中选择配置属性,规定如下的设置:
在 C/C++ 项 下 , 常 规 的 调 试 信 息 格 式 子 项 , 选 择 “ C7 兼 容
(/Z7)” 在C/C++项下,代码生产的基本运行时检查子项,选择“默认值” ,不进行堆栈帧的检查,也不进行未初始化变量的检查 在 C/C++ 项 下 , 代 码 生 产 的 缓 冲 区 安 全 检 查 子 项 , 选 择 “ 否 (/GS-)” 在 C/C++ 项 下 , 输 出 文 件 汇 编 输 出 子 项 , 选 择 需 要 的 格 式 (/FA,/FAs),以生产.asm汇编语言形式的目标代码 在C/C++项下,优化的优化子项,选择“使大小最小化(/O1)” 在常规项下,MFC的使用子项,选择“在静态库中使用MFC” ,如 果出现LINK错误,不选这项。
教材与说明
关于选课:…… 教材:……
• 考核综合成绩:
平时成绩:20%(作业,提问,考勤) 实验成绩:20%(实验报告) 期末成绩:60%(课程报告) 有下列情形之一者综合成绩0分计算:
实验,作业缺交1/3及以上者; 未经许可无故缺勤达10学时及以上者;
软件学院 – 王逍 v2018 1
a=10203, b=82000102 a=66051, b=-2113928958
//L1 //L2
b = *( int* ) ( p+1 );
printf( "a = %x, b=%x\n", a, b );
printf( "a = %d, b=%d\n", a, b ); return 0; }
前一个存储单元的地址与后一个存储单元的地址相差1; 一个地址指定的一个存储单元保存一个字节数据;
可以把内存看作为一个很大的一维字符数组,把地址看作为标 识数组元素的下标。 存储单元的地址是固定,存储单元的数据可以通过程序进行修 改。存储单元的地址是只读的,存储单元的数据是可读写的。
软件学院 – 王逍 v2018 14
构成一个双字存储单元。Fra bibliotek软件学院 – 王逍 v2018 15
案例1.2 调试程序
#include <stdio.h>
分析数据的保存情况?
char buff[] = { 3, 2, 1, 0, 130 }; int a, b;
// 130=0x82
int main( )
{ char *p = buff; a = *( int* ) p;
可以表示高级语言中的一个无符号整数,带符号数整数,或一个
字符数据(ASCII)
字:word,由两个字节组成,有16个二进制位(bit);
可以表示高级语言中的一个无符号整数,带符号数整数,或一个
汉字(国标码)
双字:double word,由两个字组成,有32个二进制位(bit);
可以表示高级语言中的一个无符号整数,带符号数整数,浮点数,
[
标号:] 指令助记符 [ 操作数表 ] 中括号中部分可选; 操作数表可以有0个,1个,或多个操作数,使用逗号分隔开;
汇编格式指令与机器指令一一对应;
软件学院 – 王逍 v2018 9
1.3 汇编语言的概念
机器指令采用二进制编码表示(书写显示时,方便用16进制), 汇编格式指令使用助记符 一一对应
指针等
四字:由4个字组成,有64个二进制位(bit); 10字节:由5个字组成,有80个二进制位(bit);
软件学院 – 王逍 v2018 13
1.5 数据的存储
汇编语言是低级语言,在汇编语言程序中,使用到的数据根 据需要可以指定数据在内存中的保存位置。
IA-32CPU将内存空间划分为一个一个的基本存储单元(字节存 储单元),每一个存储单元保存8个二进制位(bit)构成的一个数据, 相 邻 的 两 个 存 储 单 元 保 存 16 个 二 进 制 位 (bit) 构 成 的 一 个 数 据,……。 每一个基本存储单元有一个唯一的地址, CPU 使用这个地址可 以使用存储单元中保存的数据。 是一种按字节顺序编址方法:
1.5 数据的存储
字节存储单元是基本的存 储单元。 一个字节存储单元中8位 数据的意义,根据需要可以 有不同的解释。 两个连续的字节存储单 元构成一个字存储单元。字 存储单元的地址是较低的字 节存储单元的地址。“高高 低低”规则。 四个连续的字节存储单元
…… 0000FH 0000EH 0000DH 0000CH 0000BH 0000AH 00009H 00008H 00007H 00006H 00005H 00004H 00003H 00002H 00001H 00000H FF FF FF 82 00 01 02 03 00 00 00 66 41 35 39 45 地址0003H处 字单元值为6641H 地址0002H处 字单元值为4135H 地址0009H处 双字单元值为82000102H 地址0008H处 双字单元值为00010203H
xor xor inc ecx, ecx eax, eax ecx 33 C9
33 C0
41 8B D1 0F AF D1 03 C2 41
0000 0011 1100 0010
lab1: mov edx, ecx imul edx, ecx add eax, edx
inc
jle
ecx
lab1
cmp ecx, 10
软件学院 – 王逍 v2018 4
1.1 目标文件
汇编语言形式的OBJ目标代码: 使用 OllyDBG 打开可 EXE 执行文件→反汇编过程,汇编形式 的EXE文件
软件学院 – 王逍 v2018 5
案例1.1 生成汇编形式的目标文件
#include<stdio.h> int main( void ) { printf(”Hello,world\n”); return 0; }
目标程序:
CPU只能和别执行机器指令
使用WinHex打开目标文件,如何理解呢?
int cf11( void ) {
计算1到10的平方之和
int
sum, i;
sum = 0; for ( i = 1; i <= 10; i += 1 )
sum += i*i;
return sum; }
软件学院 – 王逍 v2018 3
高级语言
汇编语言
机器语言 机器(处理器)
软件学院 – 王逍 v2018 12
1.4 基本数据类型
汇编语言是低级语言,在汇编语言程序中,使用的基本数据 类型都是可以直接保存在内存空间中的 0,1形式数据。基本数据 类型有:
字节:byte ,由8个二进制位 (bit)组成;字节最低位是第0位, 最高位是第7位;
汇编与汇编程序
把用汇编语言编写的程序称为汇编语言源程序,或称为汇编源
程序,或简称为源程序。 把汇编源程序翻译成目标程序的过程称为汇编。 把完成汇编工作的工具或程序叫做汇编程序(汇编器)
软件学院 – 王逍 v2018 11
1.3 汇编语言的概念
高级语言,汇编语言与机器语言
count = i+3; mov ax,[2000h] add ax,3 mov [2002h],ax a10020 050300 a30220
软件学院 – 王逍 v2018 6
1.2 内联汇编
在VS IDE中进行C/C++程序中,支持嵌入汇编语言。
使用关键字_asm{},可以在{}中嵌入一段汇编指令 使用关键字_asm
汇编指令,可以嵌入一条汇编指令 使用关键字_emit 数值,可以分配一个字节的内存空间,并使 用数值初始化 注意可以没有分号结尾,如果有分号,后面是注释。//
83 F9 0A
7E F3
C3
软件学院 – 王逍 v2018 10
ret
1.3 汇编语言的概念
汇编语言
汇编语言是一种程序设计语言,是机器语言的符号化 汇编语言的语句主要是汇编格式指令和伪指令 由于汇编语言的主体是汇编格式指令,而汇编格式指令又与机
汇编语言程序设计
6)组合运算符(属性修改运算符) ① PTR运算符:运算符PTR可以指定或修改存储器操作数的 类型。注意,这种修改是临时性的,仅在该语句内有效。 下面是使用PTR运算符的例子: 例10 INC BYTE PTR[BX] 该语句的目的操作数是内存单元,用寄存器作为地址指 针。如果仅仅使用[BX]来表示该操作数,则汇编该语句时 ,不能确定该存储单元是字节单元还是字单元。因此,必 须使用BYTE PTR说明它为字节操作数(若为字操作数, 则使用WORD PTR说明)。
4)分析运算符:分析运算符有:SEG、OFFSET、TYPE、 LENGTH和SIZE。 ① SEG运算符:利用SEG运算符可以得到一个标号或变量的段 基值。下面的指令将ARRAY的段基值送给DS寄存器。 例4 MOV AX,SEG ARRAY MOV DS,AX ② OFFSET运算符:利用OFFSET运算符可以得到一个标号或 变量的偏移量。下面的指令将STRING的偏移地址送给DX。 例5 MOV DX,OFFSET STRING ③ TYPE运算符:运算符TYPE的运算结果是一个数值,这个数 值与操作数类型的对应关系见表4-1。
4.1.3
汇编语言的表达式
(3)表达式。表达式是操作数常见的形式,它由常数、变量 、标号通过操作运算符连接而成。 汇编语言中有:算术运算符、逻辑运算符和关系运算符等 。 1)算术运算符:常用的有:+(加)、–(减)、*(乘)、/ (除)和MOD(模运算)等,算术运算的结果是一个数值 。 例1 MOV AX,VARX+2 表示VARX的地址加2后对应的存储字单元内容送给AX。 2)逻辑运算符:AND(逻辑“与”)、OR(逻辑“或”) 、NOT(逻辑“非”)和XOR(逻辑“异或”)。逻辑运算 用于数值表达式中对数值进行按位逻辑运算,并得到一个数 值结果。 例2 MOV AL,0FH AND 35H 表示将0FH与35H按位相与后得到05H送给AL, 这条指令 与MOV AL, 05H 等效。
汇编语言王爽第三版检测点答案带目录
汇编语言王爽第三版检测点答案带目录在学习汇编语言的过程中,王爽老师的《汇编语言(第三版)》无疑是一本备受推崇的经典教材。
而对于学习者来说,检测点的答案能够帮助我们更好地巩固知识,查漏补缺。
接下来,我将为大家详细呈现这本教材中各个章节检测点的答案,并附上清晰的目录,方便大家查阅和学习。
第一章基础知识检测点 11(1)1 个 CPU 的寻址能力为 8KB,那么它的地址总线的宽度为。
答案:13 位。
因为 8KB = 8×1024 = 2^13B,所以地址总线的宽度为 13 位。
检测点 12(1)8086 CPU 有根数据总线。
答案:16 根。
(2)8086 CPU 有根地址总线。
答案:20 根。
检测点 13(1)内存地址空间的大小受的位数决定。
答案:地址总线。
(2)8086 CPU 的地址总线宽度为 20 位,其可以寻址的内存空间为。
答案:1MB。
因为 2^20 = 1048576B = 1MB。
第二章寄存器检测点 21(1)写出每条汇编指令执行后相关寄存器中的值。
mov ax,62627 AX = 62627mov ah,31H AH = 31H,AX = 31627mov al,23H AL = 23H,AX = 3123H检测点 22(1)给定段地址为 0001H,仅通过变化偏移地址寻址,CPU 的寻址范围为到。
答案:00010H 到 1000FH。
(2)有一数据存放在内存 20000H 单元中,现给定段地址为 SA,若想用偏移地址寻到此单元。
则 SA 应满足的条件是:最小为,最大为。
答案:最小为 1001H,最大为 2000H。
第三章内存访问检测点 31(1)下面的程序实现依次用内存 0:0~0:15 单元中的内容改写程序中的数据。
完成程序。
assume cs:codesgcodesg segmentdw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987Hstart: mov ax,0mov ds,axmov bx,0mov cx,8s: mov ax,bxmov bx+16,axadd bx,2loop smov ax,4c00hint 21hcodesg endsend start检测点 32(1)下面的程序将“Mov ax,4c00h ”之前的指令复制到内存 0:200 处。
汇编语言1-1
第2节 进位计数制与不同基数之间的转换
2、基数和权 基数和权
基数:指这个计数系统中采用多少个数字符号。 基数:指这个计数系统中采用多少个数字符号。 不同的数位所代表的数值。 权:不同的数位所代表的数值。 如果把用k进制书写的一个整数从右往左依次记作第 进制书写的一个整数从右往左依次记作第0位 如果把用 进制书写的一个整数 从右往左 依次记作第 位 、 位上的数符a 第 1位、 …、第 n位, 则第 位上的数符 i 所代表的含义是 i×ki 。 位 、 位 则第i位上的数符 所代表的含义是a 在此,我们把k称为一个数制的基数,而把k 称为k进制数第 称为一个数制的基数 进制数第i位 在此,我们把 称为一个数制的基数,而把 i称为 进制数第 位 的权。 如:10进制数中的 进制数中的 基数=10 (0、1、2、3、4、5、6、7、8、9) 3、计数规则 计数规则 简单地说,就是“ 简单地说,就是“逢k进1,借1当k”。 进 , 当 。
15
第2节 进位计数制与不同基数之间的转换
1.2.1 数制
一、有关概念 数制:用一组数字与统一的规则来表示数的方法。 数制:用一组数字与统一的规则来表示数的方法。 十进制—十进制的数符集中有10个符号 十进制的数符集中有10个符号: 十进制 十进制的数符集中有10个符号:0,1,2,3,4,5,6, 7,8,9,符合人们的习惯 符合人们的习惯. 7,8,9,符合人们的习惯. 二进制—0 二进制数是计算机内部采用的, 二进制—0和1。二进制数是计算机内部采用的,并唯一能够 直接被计算机识别的数 便于物理实现,便于运算. 的数。 直接被计算机识别的数。便于物理实现,便于运算. 十六进制—16个符号: 16个符号 十六进制 16个符号:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 便于识别、书写.引入十六进制数的目的是为了描述二进制 便于识别、书写.引入十六进制数的目的是为了描述二进制 数 八进制: 八进制:
第1章_C语言概述(C语言程序设计)
通过以上例子可以看出: 通过以上例子可以看出: 1. C程序是由函数构成的。每个程序由一个或多个函数组成, 程序是由函数构成的。每个程序由一个或多个函数组成, 程序是由函数构成的 其中必须有且仅有一个主函数main( )。 有且仅有一个主函数 其中必须有且仅有一个主函数 。 2. 一个可执行的 语言程序总是从 一个可执行的C语言程序总是从main函数开始执行,而不 函数开始执行, 语言程序总是从 函数开始执行 论其在整个程序中的位置如何。 论其在整个程序中的位置如何。 3. C对输入输出实行函数化。 对输入输出实行函数化。 对输入输出实行函数化 4. C程序书写格式自由,一行内可以写几个语句,一个语句 程序书写格式自由,一行内可以写几个语句, 程序书写格式自由 也可以分写在多行上。 也可以分写在多行上。 5. 可用 可用/*……*/对C程序中的任何部分作注释,注释可以写在 对 程序中的任何部分作注释 程序中的任何部分作注释, 程序的任何位置上, 也可不在同一行上。 程序的任何位置上,“/*”与“*/”也可不在同一行上。 与 也可不在同一行上 6. 在C语言中,大小写字母是有区别的。( 语言习惯用小 语言中, 。(C语言习惯用小 语言中 大小写字母是有区别的。( 写字母) 写字母)
主函数
main( ) { int x, y, z; printf(“Please input two integers:\n”) ; scanf(“%d%d” , &x, &y); z = add_xy(x, y); printf(“%d %d %d.”, x, y, z); }
西南林学院计科系
第 1章 概述
西南林学院计科系
第 1章 概述
将汇编源程序翻译为目标程序(机器语言)的过程称 为汇编 汇编。 汇编 连接的原因是由于在目标程序中还可能要调用一些 连接 标准程序库中的标准子程序或其他自定义函数等,由于 这些程序还没有连接成一个整体,因此,需通过“连接 程序”将目标程序和有关的程序库组合成一个完整的 “可执行程序”。
第1章汇编语言知识学习基本知识
第1章汇编语⾔知识学习基本知识第1章汇编语⾔基础知识本章介绍学习汇编语⾔程序设计所必须具备的基本知识,主要包括汇编语⾔的基本概念及计算机中数据的表⽰⽅法。
通过本章的学习,读者应能了解汇编语⾔概念及其使⽤的进位计数制、不同进位计数制之间的转换、计算机编码以及基本数据类型。
本章内容要点:汇编语⾔的概念汇编语⾔的特点不同进位计数制之间的转换计算机编码1.1汇编语⾔概述1.1.1 汇编语⾔基本概念⾃然语⾔是具有特定语⾳和语法等规范的、⽤于⼈类表达思想并实现相互交流的⼯具。
⼈与⼈之间只有使⽤同⼀种语⾔才能进⾏直接交流,否则就必须通过翻译。
要使计算机为⼈类服务,⼈们就必须借助某种⼯具,告诉计算机“做什么”甚⾄“怎么做”,这种⼯具就是程序设计语⾔。
程序设计语⾔通常分为三类:机器语⾔、汇编语⾔和⾼级语⾔。
⽽前两种语⾔与机器密切相关,统称为低级语⾔。
1.机器语⾔机器语⾔是计算机第⼀代语⾔,它全部由0、1代码组成,是能够直接被机器所接受的语⾔,是最底层的计算机语⾔。
机器语⾔不容易记忆,程序编写难度⼤,调试修改繁琐,且不易移植,现在程序员很少⽤。
但机器语⾔执⾏速度最快,它是⼀种⾯向机器的程序设计语⾔。
2.汇编语⾔为了克服机器语⾔难以记忆、表达和阅读的缺点,⼈们采⽤具有⼀定含义的符号作为助忆符,⽤指令助忆符、符号地址等组成的符号指令称为汇编格式指令(或汇编指令)。
例如,⽤ADD表⽰加法指令,SUB表⽰减法指令,MOV表⽰传送指令等。
汇编语⾔是汇编指令集、伪指令集和使⽤它们规则的统称。
伪指令的概念将在第4章介绍。
汇编语⾔⽐机器语⾔直观,容易记忆和理解,⽤汇编语⾔编写的程序也⽐机器语⾔程序易读、易检查、易修改。
对于不同的计算机,针对同⼀问题所编写的汇编语⾔源程序是互不通⽤的。
⽤汇编语⾔编写的程序执⾏效率⽐较⾼,但通⽤性与可移植性仍然⽐较差。
计算机不能直接识别⽤汇编语⾔编写的程序,必须由⼀种专门翻译程序将汇编语⾔程序翻译成机器语⾔程序,计算机才能执⾏。
C语言一、二级章节总结
第一章程序设计的基本概念·01-01.程序设计的基本概念计算机语言高级语言远离硬件 C语言--- C++ ---- JAVA低级语言贴近硬件机器语言汇编语言基本概念:1、机器语言:计算机能接受和处理的由0和1代码构成的二进制指令或数据,是面向机器的。
2、源程序:由高级语言编写的程序称为“源程序”。
3、目标程序:二进制代码表示的程序称为“目标程序”。
4、编译程序:5、C源程序:6、C语言源程序文件名的后缀是.c,经过编译后生成目标文件的后缀名是.obj,经过连接后生成的可执行文件后缀名是.exe。
例题:在Visual C++环境下运行一个C程序时,所运行的程序的后缀名是?7、程序设计一般包含以下步骤:1)确定数据结构;2)确定算法;3)编译;4)运行调试程序;5)整理并写出文档资料。
8、算法:特点:1)有穷性;2)确定性;3)可行性;4)有零个或多个输入;5)有一个或多个输出。
算法的描述方法:1)伪代码;2)一般流程图(传统的结构化流程图);3)N-S流程图;4)PDA图等。
传统的结构化流程图:开始框处理框输入/输出框判断框流程线连接点N-S流程图:9、结构化的语言的三种结构:1)顺序结构;2)选择结构;3)循环结构。
顺序结构:语句1 语句1语句2语句2一般流程图 N-S图选择结构:判断表达式 满足语句1 语句2循环结构:判断表达式当判断表达式满足a )当型循环 先判断,后执行 最少循环0次b )直到型循环 先执行,后判断 最少循环1次不满足语句1语句2满足不满足判断表达式不满足满足循环体循环体第二章 C语言基础知识·02-01.简单C语言的构成和格式例:#include “stdio.h”main(){float a,b,area;a=1.2;b=3.6;area=a*b;printf(“a=%f,b=%f,area=%f\n”,a,b,area);}1、命令行:1)命令行必须以“#”开头,最后不能加“;”号。
汇编语言程序设计
《汇编语言程序设计》课程教学大纲学时:32 学分:2理论学时:24 实验学时:8面向专业:电科、电信、通信课程代码:B2700009先开课程:C语言程序设计课程性质:必修执笔人:王艳春审定人:陈龙猛、张金政第一部分:理论教学部分一、说明1、课程的性质、地位和任务本课程属于专业基础课,是电科、电信和通信专业学生必修的核心课程之一,是进一步学习微机原理、操作系统等课程的基础。
掌握它有助于提高学生对计算机系统的设计、研究、开发和应用能力。
汇编语言是一种面向机器、实践性很强的程序设计语言,必须结合一种实际的计算机来组织教学。
因此,本课程选择最广泛使用的IBM PC作为具体的机型来介绍。
通过课堂教学和上机实践,培养学生用汇编语言进行编程的思路、方法,养成良好的程序设计习惯,并了解底层I/O 驱动软件的编程方法,熟悉源程序汇编、链接和调试运行的步骤和方法,掌握dos、BIOS功能的调用方法及使用debug工具的调试手段,为后续课的学习打下扎实的基础。
2、课程教学和教改基本要求课程的目的与教学基本要求:本课程主要介绍汇编语言和宏汇编的基本概念,80X86CPU的指令系统和寻址方式;介绍汇编语言程序格式、伪操作和上机全过程。
通过实际例子,详细叙述顺序、分支、循环、子程序等基本程序结构以及程序设计的基本方法和技巧。
学习这门课程,应达到以下几个要求:①掌握汇编语言的基本理论知识和有关概念;掌握用汇编语言编写源程序的基本原则、方法和技巧;②具有阅读,分析汇编语言程序的能力;③通过上机实践,能够熟练地掌握汇编语言程序的编辑、汇编、连接、运行过程及debug工具的调试手段。
课堂授课采用多媒体教学,采用由浅入深、循序渐进学习步骤,主要讲解设计思想、实现技巧,通过提问题引导学生思考,提高学生的学习兴趣,从而加深学生对理论课的理解,提高学生的动手能力。
二、教学内容与课时分配第一章基础知识(2学时)1.1 机器语言及汇编语言的产生1.2 汇编语言的组成1.3 存储器1.4 指令和数据1.5 存储单元及CPU对存储器的读写1.6 三大总线1.7 主板、接口卡及各类存储器芯片1.8 内存地址空间教学的重点与难点:指令和数据在内存或磁盘上没有区别;内存地址空间。
汇编语言-第二版-王爽-完整答案
汇编语言-第二版-王爽-完整答案第1章基础知识检测点1.1(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13。
(2)1KB的存储器有1024个存储单元。
存储单元的编号从0到1023。
(3)1KB的存储器可以存储1024*8个bit,1024个Byte。
(4)1GB、1MB、1KB分别是2^30、2^20、2^10 Byte。
(n^m的意思是n的m次幂)(5)8080、8088、80286、80386的地址总线宽度分别是16根、20根、24根、32根,则它们的寻址能力分别为:64(KB)、1(MB)、16(MB)、4(GB)。
(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。
则它们一次可以传送的数据为:1(B)、1(B)、2(B)、2(B)、4(B)。
(7)从内存中读取1024字节的数据,8086至少要读512次、80386至少要读256次。
(8)在存储器中,数据和程序以二进制形式存放。
第2章寄存器答案检测点2.1(1) 写出每条汇编指令执行后相关寄存器中的值。
mov ax,62627 AX=F4A3Hmov ah,31H AX=31A3Hmov al,23H AX=3123Hadd ax,ax AX=6246Hmov bx,826CH BX=826CHmov cx,ax CX=6246Hmov ax,bx AX=826CHadd ax,bx AX=04D8Hmov al,bh AX=0482Hmov ah,bl AX=6C82Hadd ah,ah AX=D882Hadd al,6 AX=D888Hadd al,al AX=D810Hmov ax,cx AX=6246H(2) 只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
解:mov ax,2add ax,axadd ax,axadd ax,ax检测点2.2(1) 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为00010H到1000FH。
C语言第一章绪论详解
程序书写风格
同一层次大 括号对齐
分层缩进并对齐
24
int a, b, c; printf(“Please input a and b:\n”); scanf(“%d%d”, &a, &b);
c = a; a = b; b = c;
printf(“a = %d b = %d”, a, b) return 0; }
/*输入变量a和b的值*/ /*交换a和b*/ /*输出a和b的值*/
#include<stdio.h>
int add(int x, int y)
/*定义add()函数,求两个数之和*/
{
int z;
z = x + y;
return z;
}
int main(void)
/*定义主函数*/
{
int a,b,c;
printf(“Please input a and b:\n”);
第一章 绪 论
1
程序与程序设计语言
程序(Program)是为实现特定目标或解决特 定问题而用计算机语言编写的命令序列的集合, 是为实现预期目的而进行操作的一系列语句和指 令。用于编写计算机可执行程序的语言称为程序 设计语言,程序设计语言可分为:
机器语言 汇编语言 高级语言
完成两数相加的操作: 机器语言:10110011 …… 汇编语言:add ax, bx 高级语言:C=A+B
⑤ …… }
④
}
13
C语言程序的组成及书写规则
C程序是由一个或多个函数组成的,其中必须要有一个 且只能有一个main( )函数。无论这个函数的位置在哪里 ,程序总是从它开始执行。main( )函数可以调用其它函 数,但是其它函数不能调用main( )函数。
计算机组成原理与汇编语言程序设计课后习题及解答(详解)
计算机组成原理与汇编语言程序设计课后习题及解答徐洁,俸远祯电子工业出版社第1章习题一1.什么是程序存储工作方式?答:计算机的工作方式——存储程序工作方式。
即事先编写程序,再由计算机把这些信息存储起来,然后连续地、快速地执行程序,从而完成各种运算过程。
2.采用数字化方法表示信息有哪些优点?用数字化方法表示信息的优点:(1)抗干扰能力强, 可靠性高。
(2)依靠多位数字的组合,在表示数值时可获得很宽的表示范围以及很高的精度。
(3)数字化的信息可以存储、信息传送也比较容易实现。
(4)可表示的信息类型与范围及其广泛,几乎没有限制。
(5)能用逻辑代数等数字逻辑技术进行信息处理,这就形成了计算机硬件设计的基础。
3.如果有7×9点阵显示出字符A的图像,请用9个七位二进制代码表示A的点阵信息。
4.数字计算机的主要特点是什么?1. (1)能在程序控制下自动连续地工作;(2|)运算速度快;(3)运算精度高;(4)具有很强的信息存储能力;(5)通用性强,应用领域及其广泛。
5.衡量计算机性能的基本指标有哪些?答:衡量计算机性能的基本指标:(1)基本字长——参加一次运算的数的位数;(2)数据通路宽度——数据总线一次能并行传送的位数;(3)运算速度——可用①CPU的时钟频率与主频,②每秒平均执行指令数,③典型四则运算的时间来表示。
(4)主存储器容量——可用字节数或单元数(字数)×位数来表示。
(6)配备的外围设备及其性能。
(7)系统软件配置。
7.系统软件一般包括哪些部分?列举你所熟悉的三种系统软件。
系统软件一般包括操作系统,编译程序、解释程序、各种软件平台等。
例如WINDOWS98操作系统,C 语言编译程序等,数据库管理系统。
8.对源程序的处理有哪两种基本方式?对源程序的处理通常有两种处理方式:解释方式和编译方式。
第2章习题二1.将二进制数(101010.01)2 转换为十进制数及BCD码。
解:(101010.01)2 = (42.25)10 = (01000010.00100101)BCD2.将八进制数(37.2)8转换为十进制数及BCD码.解:(37.2)8 = (31.25)10 =(00110001.00100101)BCD3.将十六进制数(AC.E)转换为十进制数及BCD码.解: (AC.E)16 =(172.875)10 = (000101110010.100001110101)BCD4.将十进制数(75.34)10转换为8位二进制数及八进制数、十六进制数。
