我是靠谱客的博主 纯真镜子,这篇文章主要介绍汇编语言 学习记录(详细)汇编语言程序设计_电子科技大学_中国大学MOOC(慕课) 概念 学习目的 进位计数制及其相互转换 二进制和十进制的互相转换  带符号数的表示 字符的表示基本逻辑运算,现在分享给大家,希望可以做个参考。

(已转首都师范大学汇编,该记录停更)

日志:2022.03.04 first

汇编语言程序设计_电子科技大学_中国大学MOOC(慕课)

学习课程链接 ↑

目录

概念

学习目的

进位计数制及其相互转换

 

二进制和十进制的互相转换

01.十进制整数转换为二进制数

001.减权定位法

002.除基取余法

02.十进制小数转换为二进制数

001.减权定位法

002.乘基取整法

03.二进制整数转换为十进制数

 001.按权相加法

 002.逐次乘基相加法

 04.二进制小数转换为十进制数

001.按权相加法

 002.逐次除基相加法

 

 

带符号数的表示

原码表示

补码

意义

定义

由真值、原码变换为补码

 补码数的表示范围

补码的加减运算

字符的表示

基本逻辑运算

几种常见的基本逻辑运算


 

 

概念

汇编语言是为了便于记忆和阅读,使用字母和符号来表示机器语言的命令,用十进制数或十六进制数来表示数据的计算机程序设计语言。

汇编语言的语句与机器语言指令一一对应,汇编语言程序与机器语言程序效率相同

注意,不同类型计算机有不同的机器指令系统和汇编语言描述。

 

学习目的

1. 学习和使用汇编语言可以从根本上认识、理解计算机的工作过程。

2.可以更充分地利用机器硬件的全部功能,发挥机器的长处。

3. 机器自检、系统初始化、实际的输入输出设备等等操作必须使用汇编语言。

4. 汇编语言程序的效率高于高级语言程序。

5. CTF小白必学

6. ……

4 中“效率”有两个方面的含义:程序的目标代码长度和运行的速度。在某些要求节省内存空间和提高程序运行速度的应用场合,如实时过程控制、智能仪器仪表等,常常用汇编语言来编制程序。

 

进位计数制及其相互转换

进位计数制是使用一定个数的数码的组合来表示数字的表示方法。

不同的进位计数制使用的“数码”的数量不同。

不同的进位制和不同的位置其位权是不同的。

位权乘以对应位置上的数码就等于该数位上数值的大小。

如:十进制数,用0、1、2、…… 8、9 十个数码的组合来表示数字。

每个数码所表示的数值大小和其所在的位置相关。

例如:123这个数,个位的3代表3个1,十位的2代表2个10,百位的1代表1个100.

位权(简称:位)是 各个位置上所表示的基本数值。

基数 是 每个数位上能使用不同数码的个数。

如:

十进制有十个数码 0~9,基数为10;

二进制基数为2。

每个数位能取的最大数码值=基数-1。(如十进制为10-1=9)

因为在计算机中最容易被表示和存储,且适合于逻辑值的表达与运算,在计算机中数据表示一般采用二进制数,但是对人来说二进制不便于书写和阅读,因此书写时常使用10进制、8进制和16进制。

其中二进制与8进制、16进制的转换关系:

3位二进制数与一位8进制数对应,4位二进制数与一位16进制数对应。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGVlYXN55oOz5Y-YbmI=,size_20,color_FFFFFF,t_70,g_se,x_16

 

为了区别,在数的尾部用一个字母来表示不同的进位计数制

B(Binary)                 ——二进制数
O (Octal)或Q                ——八进制数
D (Decimal)                  ——十进制数
H (Hexadecimal)          ——十六进制数。
未使用字母,则默认表示为 十进制

 

二进制和十进制的互相转换

01.十进制整数转换为二进制数

001.减权定位法

从二进制数高位起,依次用待转换的十进制数与各位权值进行比较,如够减,则该数位系数Ki=1,同时减去该位权值,余数作为下一次比较的值;如不够减,则Ki=0 ;(是不是没看懂,没事,我自己也看不懂,直接看例子就明白了)

例:将325转换为二进制数,直到余数为0。

首先确定二进制数的最高位

因为 2^9 = 512 > 325 > 2^8 = 256,因此从K8位开始比较

减数比较ki对应二进制数
325-256=69k81
69<128k70
69-64=5k61
5<32k50
5<16         k40
5<8k30
5-4=1        k21
1<2        k10
1-1=0k01

所以 325D=101000101B

002.除基取余法

将十进制数除以基数2,其余数为二进制数的最低位,再用其商除2,其余数为次低位,反复做下去,直到商等于0.

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGVlYXN55oOz5Y-YbmI=,size_20,color_FFFFFF,t_70,g_se,x_168a249a8e395046c892840fe556b57cbc.png                

02.十进制小数转换为二进制数

001.减权定位法

转换时应根据程序要求的精度或计算机的字长来确定二进制的位数。

减权比较Ki对应二进制数
0.645 - 0.5 = 0.145k-11
0.145 < 0.25 (0.5^2)k-20
0.145 - 0.125 = 0.02k-31
0.02 < 0.0625  (0.5^4)k-40
0.02<0.03125k-50
0.02-0.015625k-61

所以 0.645D=0.101001B

002.乘基取整法

例 将0.8125D转换为二进制数

乘以基数Ki整数部分
0.8125×2=1.625k-11
0.625×2=1.25k-21
0.25×2=0.5k-30
0.5×2=1.0k-41

所以 0.8125D=0.1101B

03.二进制整数转换为十进制数

 001.按权相加法

例:101000101B=1×2^8+1×2^6+1×2^2+1×2^0
                            =256+64+4+1
                            =325

 002.逐次乘基相加法

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGVlYXN55oOz5Y-YbmI=,size_20,color_FFFFFF,t_70,g_se,x_16

 04.二进制小数转换为十进制数

001.按权相加法

例: 0.101001B   = 1×2-1+1×2-3+1×2-6
                        =0.5+0.125+0.0156
                        =0.640625D

 002.逐次除基相加法

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGVlYXN55oOz5Y-YbmI=,size_20,color_FFFFFF,t_70,g_se,x_16

说白了就是先 除以2, 再加上上面的0或者1(0的时候也就等于不加),然后再将相加后的结果除以2,如此往复。

 

 

带符号数的表示

一般算术中使用”“+”和“-”来表示正数与负数            在计算机中则使用“0”和“1”来表示正数和负数

用“+”或“-”表示正负的数叫真值                           用“0”或“1”表示正负的数叫机器数

带符号的机器数可以用 原码、反码和补码 三种不同码制来表示。

一般计算机中大多采用补码表示。

 

原码表示

二进制数的最高位表示符号,0表示正,1表示负。数值部分用二进制数绝对值表示。

8位二进制数原码的          最大数为    01111111  (+127)
                                         最小数为    11111111  (-127)
8位二进制数表示范围      -127 ≤ X ≤ +127

0的原码有两种表示形式:00000000和10000000(+0和-0)

 

补码

补码_百度百科

意义

        补码“模”概念的引入、负数补码的实质、以及补码和真值之间的关系所揭示的补码符号位所具有的数学特征,无不体现了补码在计算机中表示数值型数据的优势,和原码、反码等相比可表现在如下方面

(1)解决了符号的表示的问题

(2)可以将减法运算转化为补码的加法运算来实现,克服了原码加减法运算繁杂的弊端,可有效简化运算器的设计

(3)在中计算机中利用电子器件的特点实现补码和真值、原码之间的相互转换,非常容易

(4)补码表示统一了符号位和数值位,使得符号位可以和数值位一起直接参与运算,这也为后面设计乘法器、除法器等运算器件提供了极大的方便。总之,补码概念的引入和当时运算器设计的背景不无关系,从设计者角度,既要考虑表示的数的类型 (小数、整数、实数和复数)、数值范围和精确度,又要考虑数据存储和处理所需要的硬件代价。因此,使用补码来表示机器数并得到广泛的应用,也就不难理解了。

反正意思就是计算机用补码更好,效率更高

 

定义

带符号数X的补码表示 [X]补 定义为:

e65f06d5911f48d0b82b011162720c9c.png​

      其中模数M根据机器数的位数而定,如位数为8则M=2^8,用补码表示的机器数,符号位仍然表示数的符号:0为正,1为负。对于正数,补码与原码相同,对于负数需要进行变换。

由真值、原码变换为补码

负数的 真值 变换为 补码:        将                          各位取反,然后 最低位加1。
负数的 原码 变换为 补码:        保持符号位不变, 其余各位变反, 最低位加1。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGVlYXN55oOz5Y-YbmI=,size_20,color_FFFFFF,t_70,g_se,x_16​

 补码数的表示范围

当位数为8时,  最大补码为        01111111  = [+127]补
                          最小补码为        10000000 = [-128]补

0 的补码只有一个,[0]补 = 00000000,10000000 是  [-128]补,11111111  是  [-1]补

对于当位数为16时,补码表示范围是  -32768  ~  +32767

补码的加减运算

69a7bf1f3fcd495d9fb8d247d0dd5886.png​

其中 [-Y]补 是对 [Y]补 执行一次求补运算 

求补运算 是 将原数 连同符号位一起(不管是正还是负)按位求反,再在最低位加1

 

加法运算:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGVlYXN55oOz5Y-YbmI=,size_19,color_FFFFFF,t_70,g_se,x_16​

 

减法运算:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGVlYXN55oOz5Y-YbmI=,size_19,color_FFFFFF,t_70,g_se,x_16​

因为这个 计算过程 对 格式 的要求太高了,就偷懒截图了……; )

过程很好理解……

 

字符的表示

在计算机内部,各种字符(字母、符号、数字码)都是按一定的方式编写成二进制信息。不同的计算机以及不同的场合所采用的编码方式可能是不一样的。

最广泛采用的是 ASCII 码 (American Standard Code for Information Interchange)

标准ASCII码为一字节,其中用低七位表示字符编码, 用最高位表示奇偶数验位

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGVlYXN55oOz5Y-YbmI=,size_20,color_FFFFFF,t_70,g_se,x_16​

 标准ASCII码共有128个,可分为两类:

非打印ASCII码共33个,用于控制操作, 如BEL(响铃07H),DEL(删除7FH),CR(回车,0DH)。

可打印ASCII码共95个,如数字符0~9,大小写字母等。

 

ASCII表

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGVlYXN55oOz5Y-YbmI=,size_20,color_FFFFFF,t_70,g_se,x_16​

 

 

基本逻辑运算

计算机内部采用二进制数表示信息,具有物理实现容易、可靠性高的优点,且由于状态“0”和“1”正好与逻辑运算中的逻辑“真”和“假”对应,因此可以用“0”和“1”来表示逻辑变量的取值,很容易地实现各种复杂的逻辑运算。

几种常见的基本逻辑运算

与

或

非

异或

……

都是上学期学C语言的时候就应该要掌握的东西

 

最后

以上就是纯真镜子最近收集整理的关于汇编语言 学习记录(详细)汇编语言程序设计_电子科技大学_中国大学MOOC(慕课) 概念 学习目的 进位计数制及其相互转换 二进制和十进制的互相转换  带符号数的表示 字符的表示基本逻辑运算的全部内容,更多相关汇编语言内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(296)

评论列表共有 0 条评论

立即
投稿
返回
顶部