汇编语言(一)-基础知识

0. 教材版本信息

IBM-PC 汇编语言程序设计(第二版)
沈美明,温冬婵 编著

1. 汇编语言的特点

  • 面向机器的低层语言,通常是为特定的计算机或计算机系列专门设计的
  • 机器语言相对应,可以更直接和方便的访问控制硬件设备
  • 目标代码简短,占用内存少,执行速度快,是高效的程序设计语言
  • 可以与高级语言配合使用,应用十分广泛

在这里插入图片描述

2. 数制及之间的转换

数制基数数制符号表示方法
二进制 Binary20、11101011B
八进制 Octal80、1、2 … 7307Q或307O
十进制 Decimal100、1、2 … 7、8、9189(默认进制
十六进制 Hexadecimal160、1、2 … 7、8、9,A、B、C、D、E、F5AD9H

3. 运算模式及规则

  1. 算术运算
  • 二进制计算模式,计算时最高位按数值计算(是否是符号,底层运算器不考虑)
  • 注意:标志位对结果的判定
    在这里插入图片描述
  1. 逻辑运算
  • 标准逻辑运算:与、或、非,异或
  • 对应位运算操作,位之间无联系(无进位),数值不是传统意义
  • 高位进位无意义
    在这里插入图片描述

4. 涉及的符号编码

  1. BCD码
    二 - 十进制编码(Binary Coded Decimal)
十进制字符8421码十进制字符8421码
0000050101
1000160110
2001070111
3001181000
4010091001
1000 0101 B,BCD码:85
  1. ASCII码
    American Standard Code for Information Interchange
    设备或部件之间交换信息使用
    不可见码:回车CR,换行LF等
    可见码:数字,字母等
  • 数字:高4位为“3”
数字ASII码
030H
131H
232H
939H
  • 字母:相互之间差 20H
字母ASII码字母ASII码
a61HA41H
b62HB42H
c63HC43H
z7AHZ4AH

注:字符加单引号,直接汇编出ASCII码

5. 习题

  1. 用降幂法和除法将下列十进制数转换为二进制数和十六进制数:
    (1) 369 (2) 10000 (3) 4095 (4) 32767
  • 答:(1) 369=1 0111 0001B=171H
    (2) 10000=10 0111 0001 0000B=2710H
    (3) 4095=1111 1111 1111B=FFFH
    (4) 32767=111 1111 1111 1111B=7FFFH
  1. 将下列二进制数转换为十六进制数和十进制数:
    (1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111
  • 答:(1) 10 1101B=2DH=45
    (2) 1000 0000B=80H=128
    (3) 1111 1111 1111 1111B=FFFFH=65535
    (4) 1111 1111B=FFH=255
  1. 将下列十六进制数转换为二进制数和十进制数:
    (1) FA (2) 5B (3) FFFE (4) 1234
  • 答:(1) FAH=1111 1010B=250
    (2) 5BH=101 1011B=91
    (3) FFFEH=1111 1111 1111 1110B=65534
    (4) 1234H=1 0010 0011 0100B=4660
  1. 完成下列十六进制数的运算,并转换为十进制数进行校核:
    (1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F
  • 答:(1) 3A+B7H=F1H=241
    (2) 1234+AFH=12E3H=4835
    (3) ABCD-FEH=AACFH=43727
    (4) 7AB×6FH=35325H=217893
  1. 下列各数均为十进制数,请用 8 位二进制补码计算下列各题,并用十六进制数表示其运算结果。
    (1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76)
  • 答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0
    (2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0
    (3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0
    (4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H;CF=0;OF=1
    (5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1
    (6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H;CF=0;OF=0
  1. 下列各数为十六进制表示的 8 位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?
    (1) D8 (2) FF
  • 答:(1) D8H 表示的带符号数为 -40,D8H 表示的无符号数为 216;
    (2) FFH 表示的带符号数为 -1, FFH 表示的无符号数为 255。
  1. 下列各数均为用十六进制表示的 8 位二进制数,请说明当它们分别被看作是用补码表示的数或字
    符的 ASCII 码时,它们所表示的十进制数及字符是什么?
    (1) 4F (2) 2B (3) 73 (4) 59
  • 答:(1) 4FH 表示的十进制数为 79,4FH 表示的字符为 O;
    (2) 2BH 表示的十进制数为 43,2BH 表示的字符为 +;
    (3) 73H 表示的十进制数为 115,73H 表示的字符为 s;
    (4) 59H 表示的十进制数为 89,59H 表示的字符为 Y。
  1. 请写出下列字符串的 ASCII 码值。
    For example,
    This is a number 3692.
  • 答:46H 6FH 72H 20H 65H 78H 61H 6DH 70H 6CH 65H 2CH 0AH 0DH
    54H 68H 69H 73H 20H 69H 73H 20H 61H 20H 6EH 75H 6DH 62H 65H
    72H 20H 33H 36H 39H 32H 2EH 0AH 0DH
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值