第一章 汇编语言程序设计基础

合集下载

8086汇编语言程序设计——第一个程序

8086汇编语言程序设计——第一个程序

8086汇编语⾔程序设计——第⼀个程序

本系列以80X86系列微型计算机为基础,以MASM5.0为汇编上机实验环境,重点介绍Intel8086指令系统。Intel8086指令系统中有100多条指令,利⽤这些指令可以编写出复杂的程序实现更多功能。

汇编语⾔是直接控制计算机硬件⼯作的最简便的语⾔。学习了汇编语⾔可具有在CPU寄存器级上进⾏控制和操作的能⼒,可获得直接对计算机硬件底层编程的经验。

⼀个计算的例⼦

例 *编写⼀个汇编语⾔程序,实现下列公式计算。

假设X=4,Y=5

汇编指令如下:

如果在DEBUG下⽤A命令输⼊这些指令,必须把X、Y换成具体的数值;Z、Z1是存储单元地址,最后两条指令可写为MOV [0],AL和MOV [1],AH,这样才能⽤T命令执⾏。

D:\dos〉DEBUG

-A

MOV AL,4

ADD AL,5

MOV BL,8

IMUL BL

MOV BL,4

MOV BH,0

SUB AX,BX

MOV BL,2

IDIV BL

MOV [0],AL

MOV [1],AH

采⽤DEBUG的A命令输⼊程序的做法明显不⽅便,⼀是⽆法给出变量名即符号地址,⼆是调试修改程序不便。

1. 编写

⼀个完整的汇编语⾔源程序需要增加段定义伪指令和定义数据存储单元伪指令等必须有的伪指令。

伪指令与C语⾔等⾼级语⾔中的说明性语句的含义类似,起到说明作⽤。

⽤记事本gedit或者vi编写,保存到dos⽬录下

注释符号为;号

2. 汇编、链接、执⾏

汇编语⾔源程序既可以⽤⼤写字母也可以⽤⼩写字母书写。汇编语⾔程序建⽴及汇编过程如图所⽰。

⽤户编写的源程序要经汇编程序MASM汇编(翻译)后⽣成⼆进制⽬标程序,⽂件名默认与源程序同名、扩展名为.OBJ;再经过LINK连接⽣成可执⾏程序,⽂件名默认与源程序同名、扩展名为.EXE。

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

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

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

编)

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

第一章汇编语言基础知识

1.1、简述计算机系统的硬件组成及各部分作用

1.2、明确下列概念或符号:

主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB

1.3、什么是汇编语言源程序、汇编程序、目标程序?

1.4、汇编语言与高级语言相比有什么优缺点?

1.5、将下列十六进制数转换为二进制和十进制表示

(1)FFH (2)0H (3)5EH (4)EFH

(5)2EH (6)10H (7)1FH (8)ABH

1.6、将下列十进制数转换为BCD码表示

(1)12 (2)24 (3)68 (4)127

(5)128 (6)255 (7)1234 (8)2458

1.7、将下列BCD码转换为十进制数

(1)10010001 (2)10001001 (3)00110110 (4)10010000

(5)00001000 (6)10010111 (7)10000001 (8)00000010

1.8、将下列十进制数分别用8位二进制数的原码、反码和补码表示

(1)0 (2)-127 (3)127 (4)-57

(5)126 (6)-126 (7)-128 (8)68

1.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_4章【课后答案】

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

汇编语言程序设计第四版

【课后习题答案】

第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端口。

汇编语言1-1

汇编语言1-1

18
第2节 进位计数制与不同基数之间的转换
3、十六进制数:十六进制数是由0到9和A, 、十六进制数:十六进制数是由 到 和 , B,C,D,E和F(英语大写字母分别代表 到15)这十六个 英语大写字母分别代表10到 这十六个 和 英语大写字母分别代表 数码组成的,它的进位方式是 逢十六进一” 它的进位方式是“ 数码组成的 它的进位方式是“逢十六进一”,十六进 制在程序中的使用频率很高。如记数符号A,B,C, 制在程序中的使用频率很高。如记数符号 D,E,F打头,头部应加 ;记数符号 a,b,c,d,e,f 不区别 打头, 打头 头部应加0; 等效。 大小写, 等效 书写时,为了区别,在数据 大小写,与ABCDEF等效。书写时,为了区别 在数据 后面紧跟一个字母H。 后面紧跟一个字母 。 AH?( ?(是一寄 AH?(是一寄 存器还是一 16进制数 进制数) 16进制数) 如:(2E)16= 2EH、 0A8F5H 。 、 引入十六进制数的目的是为了描述二进制数 引入十六进制数的目的是为了描述二进制数
5
第1节 基本概念
机器语言 B019 B227 F6E2 83C03E 83E838 汇编语言 Mov al,25 Mov dl,39 Mul dl Add ax,62 Sub ax,56
25*39+62-56
汇编指令:用便于记忆、 汇编指令:用便于记忆、并能描述指令功能的符号表示机器指 汇编指令( 令→汇编指令(符号指令)。 汇编指令 符号指令)。 助记符:表示指令操作码的符号,一般用英语单词或缩写。 助记符:表示指令操作码的符号,一般用英语单词或缩写。指 令的操作数也用符号表示。 令的操作数也用符号表示。 汇编语言的特点:汇编指令与机器指令一一对应, 汇编语言的特点:汇编指令与机器指令一一对应,但相对机器 语言易于理解、掌握, 语言易于理解、掌握,当我们用低级语言编写程序时使用汇编 语言而不用机器语言。 语言而不用机器语言。

32位汇编语言程序设计部分课后习题答案

32位汇编语言程序设计部分课后习题答案

19
习题解答
习题2.10-2
• 按照如下要求定义变量或符号常量:
(5) my5w为20个未赋值的字变量
• my5w word 20 dup(?)
(6) my6c为100的常量
• my6c = 100
(7) my7c表示字符串:Personal Computer
• my7c equ <Personal Computer>
• EBX,ECX,ESI,EDI,EBP,ESP
(4)寄存器EDX是___位的,其中低16位的名称是____, 还可以分成两个8位的寄存器,其中D0~D7和D8~ D15部分可以分别用名称____和____表示。
• 32,DX,DL,DH
(5)IA-32处理器有___个段寄存器,它们都是_____ 位的。
2.1 简答题-1
(2)字符“'F'”和数值46H作为MOV指令的源操作数 有区别吗?
• 没有,因为字符“'F'”的ASCII码就是数值46H
(3)为什么可以把指令“MOV EAX, (34+67H)*3”中 的数值表达式看成是常量?
• 汇编程序在汇编过程中对数值表达式计算,得到一
个确定的数值,故称数值表达式为常量
• my1b byte 'Personal Computer'
(2) my2b为用十进制数表示的字节变量:20

汇编语言程序设计

汇编语言程序设计

《汇编语言程序设计》课程教学大纲

学时:32 学分:2

理论学时:24 实验学时:8

面向专业:电科、电信、通信课程代码:B2700009

先开课程:C语言程序设计课程性质:必修

执笔人:王艳春审定人:陈龙猛、张金政

第一部分:理论教学部分

一、说明

1、课程的性质、地位和任务

本课程属于专业基础课,是电科、电信和通信专业学生必修的核心课程之一,是进一步学习微机原理、操作系统等课程的基础。掌握它有助于提高学生对计算机系统的设计、研究、开发和应用能力。汇编语言是一种面向机器、实践性很强的程序设计语言,必须结合一种实际的计算机来组织教学。因此,本课程选择最广泛使用的IBM PC作为具体的机型来介绍。通过课堂教学和上机实践,培养学生用汇编语言进行编程的思路、方法,养成良好的程序设计习惯,并了解底层I/O 驱动软件的编程方法,熟悉源程序汇编、链接和调试运行的步骤和方法,掌握dos、BIOS功能的调用方法及使用debug工具的调试手段,为后续课的学习打下扎实的基础。

2、课程教学和教改基本要求

课程的目的与教学基本要求:本课程主要介绍汇编语言和宏汇编的基本概念,80X86CPU的指令系统和寻址方式;介绍汇编语言程序格式、伪操作和上机全过程。通过实际例子,详细叙述顺序、分支、循环、子程序等基本程序结构以及程序设计的基本方法和技巧。学习这门课程,应达到以下几个要求:

①掌握汇编语言的基本理论知识和有关概念;掌握用汇编语言编写源程序的基本原则、方法和技巧;

②具有阅读,分析汇编语言程序的能力;

③通过上机实践,能够熟练地掌握汇编语言程序的编辑、汇编、连接、运行

VB程序设计第3版第1章资料

VB程序设计第3版第1章资料


பைடு நூலகம்

20
2. 结构化程序设计方法

模块化
一 章
自顶向下
程 逐步求精

设 计
传统程序设计方法:面向过程
基 础
当前流行的程序设计方法:面向对象
21
1.2.3 面向对象的程序设计
第 任何现实问题都是由一些基本事物组成,
一 这些事物之间存在着一定的联系,在使用

程 计算机解决现实问题的过程中,为了有效
序 设
地反映客观世界,最好建立相应的概念去
计 直接表现问题领域中的事物及事物之间的

础 相互联系。
面向对象技术中引入了“对象”来表示
事物;用消息传递建立事物间的联系。
22
1. 对象 (Object)
第 在自然界中,用于描述某一实体。如房屋、
一 章
人、汽车等。
程 在计算机中,对象是代码和数据的组合,
序 设
可以作为一个单位来处理。对象可以是窗口、
VB程序设计基础
VB



计 基
主讲教师:

部 门:
办公电话:
Email:
1
第1章

程序设计基础


程 本章要点:
序 设
程序设计语言

汇编语言程序设计复习

汇编语言程序设计复习

知识点

第一章基础知识

(1)正负数的补码表示, 掌握计算机中数和字符的表示;

eg.假设机器字长为8位,[+3]补=00000011B,[-3]补= 11111101 H 。

十六进制数0FFF8H表示的十进制正数为65528D,表示的十进制负数为-8D。

8位二进制数被看成是带符号补码整数时,其最小值是-128,最大值是 127 。

第二章80x86计算机组织

(1)中央处理机CPU的组成和80x86寄存器组,重点:专用寄存器,段寄存器

eg: IP寄存器中保存的是?代码段中的偏移地址FLAGS标志寄存器中共有几位条件状态位6位,有几位控制状态位2位,标志寄存器分为哪2类?陷阱标志,中断标志。

(2)存储单元的地址和内容每一个字节单元给以一个唯一的存储器地址,称为物理地址;一个存储单元中存放的信息称为该存储单元的内容。存储器地址的分段,(低位字节存放)低地址,(高位字节存放)高地址;实模式下逻辑地址、选择器和偏移地址;物理地址的表示段基地址加上偏移地址。

eg.如果SS=6000H,说明堆栈段起始物理地址是_____60000H___。

已知字节(00018H)=14H,字节(00017H)=20H,则字(00017H)为__1420H______。

如果(SI)=0088H,(DS)=5570H,对于物理地址为55788H的内存字单元,其内容为0235H,对于物理地址为5578AH的内存字单元,其内容为0E60H,那么执行指令LDS SI,[SI]以后,(SI)= 0235H ,(DS)= 0E60H .

《汇编语言》作业答案

《汇编语言》作业答案

3545233.doc 制作:江家宝

《IBM—PC汇编语言程序设计》课后作业参考答案目录

第一章:基础知识 ........................................................................................ 2第二章:80×86计算机组织......................................................................... 2第三章:80×86的指令系统和寻址方式..................................................... 3第四章:汇编语言程序格式........................................................................ 7第五章:循环与分支程序设计.................................................................... 9第六章:子程序结构 ................................................................................ 12第七章:高级汇编语言技术.................................................................... 20第八章:输入输出程序设计.................................................................... 22第九章:BIOS和DOS中断 (23)

汇编语言基础知识.

汇编语言基础知识.

33.数.数制制间间转转换换
1)十进制数转换二进制数; 2)十进制数转换十六进制数; 3)二进制数十六进制数互相转换;
返回1.2
1.2.1-3 数制转换:十进制→二进制(整数)
①将整数部分不断除以2,记下每次得到的余数,
直到商为零;②余数倒排,即最后得到的余数排在最
高位,第一个余数排在最低位。例如将十进制数13转
对多位十进制数,只28要把每一位0十01进0 制10数0分0 别表 示为四位二进制数即可9。56 1001 0101 0110
22解.. AA决SS字CCI母III码、码符号在计算机内部如何表示。
基本ASCII码(标准ASCII码)用七位二进 制数表示一个符号(共128个); 书写:用两位十六进制数书写,如41H----A; 种类:1)控制字符(前32个和最后一个):
★集成开发环境:开发工具包括文本编辑、翻译程序、 调试程序、连接程序等,在DOS时代,其各自是独立 的;现在将其集成为一个软件,即为“集成开发环 境”。
返回1.1
1.1.3计算机的程序设计语言
低级语言 程序设计语言
1.机器语言 2.汇编语言
3.高级语言 C/C++、JAVA、 DELPHI……
1.机器语言
相对机器语言易于理解、掌握,当我们用低级语言编 写程序时使用汇编语言而不用机器语言。
汇编和汇编程序:翻译过程

汇编语言程序设计教程(第3版 卜艳萍)参考答案

汇编语言程序设计教程(第3版 卜艳萍)参考答案

汇编语言程序设计教程(第3版卜艳萍)参考答案汇编语言程序设计教程(第3版)

习题参考答案

第1章汇编语言基础知识

思考与练习

1. 计算机系统分哪几个层次?简述计算机系统的硬件结构。

1)数字逻辑层 2) 微体系结构层 3) 指令系统层 4) 操作系统层 5) 汇编语言层 6) 高级语言层 7) 应用层

硬件系统是指构成计算机系统的物理实体或物理装置。它由控制器、运算器、存储器、输入设备和输出设备等部件构成。

2. 简述用汇编语言进行程序设计的必要性。

1) 程序要具有较快的执行时间,或者只能占用较小的存储容量。例如,操作系统的

心程序段,实时控制系统的软件,智能仪器仪表的控制程序等。

2) 程序与计算机硬件密切相关,程序要直接、有效地控制硬件。例如,I/O接口电路

的初始化程序段,外部设备的低层驱动程序等。

3) 大型软件需要提高性能、优化处理的部分。例如计算机系统频繁调用的子程序、

态连接库等。

4) 没有合适的高级语言或只能采用汇编语言的时候。例如,开发最新的处理器程序时,

暂时没有支持新指令的编译程序。 5) 汇编语言还有许多实际应用,例如分析具体系

统尤其是该系统的低层软件、加密解

密软件、分析和防治计算机病毒等。

3. 汉字编码主要分哪几类?每类的功能如何?

汉字编码主要分为四类:汉字输入码、汉字交换码、汉字机内码和汉字字形码。

1) 为了能直接使用西文标准键盘进行输入,就必须为汉字设计相应的编码方法,即

西文标准键盘上的字母数字串表示汉字的编码。目前,汉字输入编码方法主要有三种:数字编码、拼音编码和字形编码。

汇编语言程序设计

汇编语言程序设计

汇编语⾔程序设计

汇编语⾔程序设计

课程介绍

1.属于低级语⾔的程序设计

2.硬件类课程和操作系统先⾏课

3.软件开发的⼀个组成部分(加密解密、逆向⼯程、有害代码的分析防治)

4.⾼级语⾔程序设计的扩展(硬件资源的管理、驱动等)

5.对计算机专业:专业基础课、必修课

第⼀章汇编语⾔基础知识

§1.1计算机语⾔基本概念

⼀、机器语⾔:(0、1代码)

1.机器指令:是指挥计算机完成某⼀基本操作的命令,是由硬件电路设计决定的,也叫硬指令。由操作码和地址码组成。

2.指令系统:每台计算机所特有的、全部指令的集合构成该CPU的指令系统。

3.机器语⾔程序:机器指令的集合构成了机器语⾔,⽤机器语⾔编写的程序就是机器语⾔程序。

4.特点:计算机能直接识别,执⾏速度快,但难于记忆、识别和编写。

⼆、汇编语⾔:

1.汇编指令:⽤便于记忆、并能描述指令功能的符号表⽰的机器指令。

2.汇编程序:就是把汇编语⾔源程序翻译成机器语⾔程序的⼀种系统软件。

3.汇编语⾔:汇编指令、伪指令、宏指令和汇编程序⼀起组成了汇编语⾔。

4.特点:汇编指令与机器指令⼀⼀对应,相对机器语⾔易于理解、掌握。汇编语⾔直接⾯向机器,⽤汇编语⾔编制的程序简洁、快速。

三、⾼级语⾔:

1.⾼级语⾔:机器语⾔和汇编语⾔以外的程序设计语⾔统称⾼级语⾔。

2.特点:其特点是更加接近⾃然语⾔和惯⽤的数学表达形式,与计算机硬件结构⽆关,因⽽便于使⽤,便于交流和推⼴。⾼级语⾔编程效率⾼,但运⾏效率低。

3.⾼级语⾔需要使⽤编译程序和解释程序将源程序翻译成机器语⾔程序,然后交计算机执⾏。

§1.2数据表⽰与运算

《汇编语言程序设计》第1章汇编语言基础知识

《汇编语言程序设计》第1章汇编语言基础知识

1.2 计算机运算基础

带符号数的表示
(2)反码表示法 正数的反码符号位为0,数值位是其真值, 即[X]反 =[X]原 ;负数的反码符号位为1, 数值位取其真值的相反码。 例如: N1 =+90=+1011010B, 那么[N1]反 =01011010B=[N1]原 N2 =-90=-1011010B, 那么[N2]反 =10100101B

带符号数的表示
(2)浮点数表示法
浮点数表示法与科学计数法相似,即把一个 二进制数N通过用2的E次幂和绝对值小于1的数 S相乘的形式表示,通过改变E的大小来移动小 数点的位置。 N=2E ×S
1.2 计算机运算基础

二进制运算
1.补码的加减运算
(1)补码的加法运算
[X]补 +[Y]补 =[X+Y]补 (2)补码的减法运算 [X]补 -[Y]补 =[X]补 +[-Y]补 =[X-Y]补
我们把已经数值化了的带符号数称为机器 数,而把原来的数称为机器数的真值。
1.2 计算机运算基础

带符号数的表示
2.机器数的表示法
(1)原码表示法
(2)反码表示法 (3)补码表示法
1.2 计算机运算基础

带符号数的表示
(1)原码表示法 正数的符号位为0,负数的符号位为1, 数值位是其真值的绝对值,即数值位保持不变。

汇编语言程序设计

汇编语言程序设计

标志寄存器操作指令
存标志指令 SAHF(Store AH into Flag) ( ) 指令格式为: 指令格式为: SAHF 执行的操作: 执行的操作: FLAG 低字节 ← (AH) ) 功能: 相反, 功能:该指令的操作与 LAHF 相反,是将 AH 寄存器中 的内容传送到标志寄存器的低8 的内容传送到标志寄存器的低8位。
IF(Interrupt Flag)方向标志位: 中断、 1、用途 enable Flag)中断允许标志位: 条件转移、 TF(TrapFlag)符号标志位: 、中断、跟踪 、用途---条件转移 串操作、 OF(Overflow Flag)溢出标志位: AF(Auxiliary carry Flag) PF(PrityFlag)跟踪标志位: ZF(Zero Flag)零标志位: CF(CarryFlag)奇偶标志位: DF(Direction 条件转移、串操作 SF(Sign Flag)进位标志位: 用来控制8086是否允许接收外部中断请求。 当补码运算(有符号数运算)有溢出时,OF为1;否 是为调试程序而设定的陷阱控制位。当该位 用以指定字符串处理时的方向,当该位置“1”时,字 2、状态标志代表的含义 、 该标志位反映运算结果低8位中1的个数是偶 辅助进位标志位:当执行一个加法(或减法) 当执行一个加法(或减法)运算使最高位产 它和运算结果的最高位(D7)相同。 若当前的运算结果为零,ZF为1;否则为0。 则为0。 控制位作用 若IF=1,8086能响应外部中断,反之则不响应外部 符串以递减顺序处理,即地址以从高到低顺序递减。反之, 3、 OF=Cn⊕Cn-1 、 置“1”时,8086CPU处于单步状态,此时CPU每 SF=0表示正数; SF=1表示负数。 运算使结果的低4位向高4位有进位(或借位)时, 数个还是奇数个。当指令执行结果的低8位中含 生进位(或借位)时,CF为1;否则为0。

汇编语言第1章

汇编语言第1章
12
3. 汇编语言程序的效率高于高级语言程序
“效率”有两个方面的含义:程序的目标代码长度 和运行的速度。
在某些要求节省内存空间和提高程序运行速度的 应用场合,如实时过程控制、智能仪器仪表等, 常常用汇编语言来编制程序。
13
§ 1.3 进位计数制及其相互转换
一. 进位计数制
使用一定个数的数码的组合来表示数字,这种 表示方法称为进位计数制。根据所使用的数码的 个数,就产生了不同的进位计数制。 如十进制数,用0、1~9十个数码的组合来表示数 字。每个数码排在不同位置,所表示的数值大小 不相同。 例如:222从右边开始,第一个2表示2个1,第二 个2表示有2个10,第三个2表示有2个100.

0
÷2

0
0.25
+ ÷2
1
÷2
0.640625 0.28125 0.5625 0.125 0.101001B=0.640625D
0.5
24
5. 二进制与八进制和十六进制间的转换
二进制与八进制和十六进制之间的对应关系很简单: 三位二进制数对应一位八进制数,四位二进制数对 应一位十六进制数。 例如:10100010B =10 100 2 4 010 2
19
所以 325D=101000101B
(2) 除基取余数 将十进制数除以基数2,其余数为二进制数的最 低位,再用其商除2,其余数为次低位,反复做下 去,直到商0.

计组实验报告基础汇编语言程序设计实验

计组实验报告基础汇编语言程序设计实验

基础汇编语言程序设计实验

【实验目的】

1.了解教学计算机的指令格式、指令编码、选择的寻址方式和每一条指令的具体功能,为

进一步学习运算器组成和控制器设计打好基础。

2.了解汇编语言的语句与机器语言的指令之间的对应关系,了解伪指令在汇编过程中的作

用。

3.学习教学机监控程序的功能、监控命令的使用方法,体会软件系统在计算机组成中的地

位和作用。

【实验内容】

1.学习联机使用TH-UNION+教学实验系统和仿真终端软件PCEC.

2.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储

器内容。

3.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,

用T、P命令单步运行并观察程序单步执行情况;

【实验内容】

1.用R命令查看寄存器内容或修改寄存器的内容

1)在命令行提示符状态下输入:

R↙;显示寄存器的内容

注:寄存器的内容在运行程序或执行命令后会发生变化。

2)在命令行提示符状态下输入:

R R0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空

格,也可有一个或数个空格

2.用D命令显示存储器内容

在命令行提示符状态下输入:

D 2000↙

3. 用E命令修改存储器内容

在命令行提示符状态下输入:

E 2000↙

4.用D命令显示这几个单元的内容

D 2000↙

可以看到这六个地址单元的内容变为0000 1111 2222 3333 4444 5555。

5. 用A命令键入一段汇编源程序,主要是向累加器送入数据和进行运算,执行程

序并观察运行结果。

1)在命令行提示符状态下输入:

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

一、数的补码表示
1、机器数:计算机中的数和数的符号都是用二进制表示的,这样的 数称为机器数。一般用最高有效位来表示数的符号,正数用0表示, 负数用1表示。 2、机器数的不同码制来表示:常用的有原码、补码和反码表示法。 (1)、原码表示法:符号 + 绝对值

例1.7 :

由此可以看出,0的表示不唯一。

(2)、反码表示法:正数的反码同原码,负数的反码数值位与原码相反

结果恰好是-7的补码,可以看出运算是正确的。
例1.10:仍假定机器字长为8位,计算32-(-25) 为把减法转换为加法,要对-25求补,实际上就是25的补码0001 1001, 32的补码是0010 0000

结果恰好是57的补码,运算正确。

三、无符号整数
8位无符号数表数范围是 0 N
N

+255
+65535

例1.7 :

由此可以看出,0的表示不唯一。 (3)、补码表示法:多数机器的整数都采用补码表示法。 正数的补码表示:与原码表示相同

负数的补码表示:相应的正数按位求反,末位加1即为该负数的补码表示。

求负数补码表示的方法:
(1)写出与该负数相对应的正数的补码 (2)按位求反 (3)末位加一 例1.8:假设机器字长为8位,求- 46的补码。

 高级语言
面向人的语言,常分为面向过程和面向对象两种。

汇编语言的特点
 面向机器的低级语言,通常是为特定的计算机或 计算机系列专门设计的。  保持了机器语言的优点,具有直接和简捷的特点 。  可有效地访问、控制计算机的各种硬件设备,如磁 盘、存储器、CPU、I/O端口等。  目标代码简短,占用内存少,执行速度快, 是高效的程序设计语言。  经常与高级语言配合使用,应用十分广泛。  不易于编程,可移植性差。

◆ 计算机中数和字符的表示
◆ 几种基本的逻辑运算

汇编语言程序设计的简单介绍
 冯· 诺依曼机的主要特点
 采用二进制编码表示数据和指令  采用存储程序工作方式

 计算机最终执行的程序包括:指令序列和数据
 由五大组成部件

计算机的组成
运算器
状 态 程序 数 据 结 果 命 令 结果

输入设备

存储器

二、补码的加法和减法
1、求补运算
对一个二进制数按位求反、末位加一的运算称为求补运算, 补码表示的数具有以下特征:

2、补码的加、减法规则
补码的加法规则是:

补码的减法规则是: 其中 通过对 求补就可以得到。

例1.9:假设机器字长为8位,计算25+(-32). 25的补码是0001 1001,-32的补码是1110 0000

有些时候用二进制表示数不太方便(代码很长),所以经常采 用十六进制表示法, 4位二进制数可用1位十六进制数来表示。
十六进制数与二进制数、十进制数的对应关系如下图所示:

各种进制的基数和数码如下表所示:

二、不同基数间的转换

二进制

除16取余、乘16取整 十进制 按权相加 十六进 制

例1.1:将二进制数转换成十进制数。 110011.101B=25+24+21+20+2-1+2-3 =51.625D 例1.2:将十进制数117转换为二进制数。 计算过程如下:

16位无符号数表数范围是 0 n位无符号数表数范围是:0

四、字符表示法
字符在机器里也是用二进制数表示的。IBM PC机采用目前最常用的 美国信息交换标准代码ASCII(American Standard Code for Information Interchange)来表示。ASCII码用一个字节(8位二进 制码)来表示一个字符,其中低7位为字符的ASCII值,最高位一般 用作校验位。 常用的字符的ASCII值: A: 41H Z: 5AH A: 61H z: 7AH 0: 30H 9: 39H

CR: 0DH LF: 0AH 空格:20H

§ 1.4 几种基本的逻辑运算
所有的逻辑运算都是按位操作的。 1、“与”运算(AND)

2、“或”运算(OR)

3、“非”运算(NOT)

4、“异或”运算(XOR)

例1.11:X=00FFH,Y=5555H,Z1=X Y,Z2=X
、Z2、Z3、Z4的值。 解:X = 0000 0000 1111 1111 Y = 0101 0101 0101 0101 Z1= 0000 0000 0101 0101 = 0055H Z2= 0101 0101 1111 1111 = 55FFH Z3= 1111 1111 0000 0000 = FF00H Z4= 0101 0101 1010 1010 = 55AAH
地 址 指 令

输出设备

控制器
请求

计算机语言的发展
机器语言 高级语言
FORTRAN BASIC COBOL PASCAL

C/C++

汇编语言

JAVA

...

程序设计语言的简单概括
 机器语言
计算机硬件能直接识别的语言,使用二进制代码 例:加法:00000011,11000011

 汇编语言
是一种符号语言,使用助记符来表示对应 的操作;与机 器语言一一对应; 例:加法:ADD AX,BX

所以117的二进制为1110101。

例1.3:将二进制数转换成十六进制数。 0011 0101 1011 1111 3 5 B F 即 0011010110111111B = 35BFH

例1.4:将二进制数转换成十六进制数。 A 1 9 C 1010 0001 1001 1100 即 A19CH = 1010000110011100B

§ 1.2 二进制数和十六进制数的运算
一、二Hale Waihona Puke Baidu制运算
加法规则: 乘法规则:

0+0=0 0+1=1 1+0=1 1 + 1 = 0(进位1)

0 0 1 1

0=0 1=0 0=0 1=1

二、十六进制数的运算
十六进制的加、减、乘、除与十进制类似,逢十六进一。 例1.5: + 例1.6: 05C3H 3D25H 42E8H 3D25H 05C3H 3762H

§ 1.3 计算机中数和字符的表示
计算机中正负数的表示
假设机器字长为8位:
7 6 5 4 3 2 1 0
H.O.Nibble L.O.Nibble

符号位 假设机器字长为16位:
15 14 13 12 11 10 9

数值位

8

7

6

5

4

3

2

1

0

H.O.Byte

L.O.Byte

符号位 = 0 正数

数值位

= 1 负数

高效程序是用汇编语言编写的。  高级绘图程序、视频游戏程序一般是用汇

编语言编写的。

§ 1.1 进位计数制与不同基数的数之间的转换
一、常用计数制
◇进位计数制是一种计数的方法,常用的有十进制计数法、

二进制计数法、十六进制计数法、八进制计数法等。
十进制数:基数为10,逢10进1。 的值是:

二进制数:基数为2,逢2进1。 的值是:



参考资料: 《高级汇编技术》、《实用汇编语言编程技巧》 《新一代汇编语言程序设计》 教学方法:多媒体和板书相结合 授课时间:2009/2010学年第二学期 教学时数:总学时:56 教学对象:计算08-1、2 讲授学时:44 计软08-1、2 实验学时:12

第1章 汇编语言程序设计基础
◆ 汇编语言程序设计的简单介绍 ◆ 进位计数制与不同基数的数之间 的转换 ◆ 二进制数和十六进制数运算

汇编语言程序和C++程序的简单比较
功能相同:计算a+b→c ,显示结果 源文件长 目标文件 可执行文 度 长度 件长度 汇编语言 402字节 196字节 578字节 TC++3.0 148字节 549字节 8.7KB 语言

汇编语言的应用
 系统程序、效率代码、I/O驱动程序
 部分系统软件是用汇编语言编写的。  某些快速处理、位处理、访问硬件设备等
汇编语言程序设计

课程名称:IBM-PC汇编语言程序设计 学习目标与要求: · 了解以intel系列微处理器为基础的PC机的基本结构 (编程结构); · 掌握intel8086/8088微处理器的指令系统; · 掌握使用汇编设计、编写、调试和运行程序的方法。 教材:《IBM-PC汇编语言程序设计(第二版)》 沈美明、温冬婵编著 清华大学出版社

Y,Z3=

,Z4=X

Y,求Z1

【本章小结】
1. 数制 计算机中的数字电路用电压的高低(或通断)表示两种状态0、1,所以计算机内部的 所有信息都是采用二进制计数法。在书写程序时,常采用二进制的短格式表示法:十六进 制。 2. 数制之间的转换 二进制数和十六进制的转换是很直接的。一个二进制数,从低位到高位,每4位用一 个数字来表示,就是相应的十六进制数,反之一个十六进制数中的每一位用4位二进制数 表示,就转换成相应的二进制数。 十六进制数的各位数与其对应权值(16i)的乘积之和即为其对应的是十进制数。十 进制数转换为十六进制数可使用降幂法和除法。 3. 运算 二进制数的算术运算规则是逢二进一,十六进制数的运算规则是逢十六进一。 基本逻辑运算包括与(AND)、或(OR)、非(NOT)、异或(XOR),0、1代码为逻 辑变量。 4. 数和字符的表示 计算机中的数是用二进制来表示,其最高有效位表示数的正负号。整数采用补码表示 法。对一个二进制数按位求反后在末位加1的运算称为求补运算。 补码的加法规则是:[X+Y]补=[X] 补+[Y] 补 补码的减法规则是:[X-Y] 补=[X] 补+[-Y] 补 计算机采用ASCII表示字符,每个字符占用一个字节。

+ 46的补码表示为: 0010 1110 按位求反: 1101 0001 末位加一 1101 0010 所以,[-46]补码 = D2H 3、补码表示数的符号扩展
符号扩展:是指一个数从位数较少扩展到位数较多,如从8位扩展 到16位,或从16位扩展到32位。 对于用补码表示的数,正数的符号扩展在前面补0,负数的符号扩 展在前面补1,假设机器字长为16位,[+46]补码 = 002EH,[-46]补码 = FFD2H。
相关文档
最新文档