第一章到第三章(CPU架构没写看书第二章)
1.进制表示
二进制0010B 十进制 2 十六进制 2H
2.汇编是低级语言,计算机能直接识别与执行。但不是最低级的,下面还有机器码
3.进制转换 不多讲,说一下有小数的进制转换吧
例:10100001.110B=()H 我喜欢二转十,十转十六
10100001.110B=1*2^0+1*2^5+1*2^7+1*2^(-1)+1*2^(-2)=1+32+128+0.5+0.25=161.75
=10*16^1+1*16^0+12*16^(-1)=0A1.CH
0.75=3/4=12/16=12*16^(-1)
4.16进制的格式 头位为字母是,前面加0
正确:0A1H 错误:A1H 3022H+8086H=0B0A8H 8086H-2028H=605EH
二进制一般就是4个数一组。0010B
5.原码、反码、补码
正整数的原码,反码,补码都是一样的,也都与无符号数的编码一样
5 原码: 00000101B 反码 00000101B 补码 00000101B
-5 原码:10000101B 反码 11111010B 补码11111011B (补=反+1)
6.ASCLL码
65-90对应 A-Z 97-122对应 a-z 48-57对应0-9
7.寄存器
通用寄存器:E开头为32位;H,L结尾为8位,其他为16为
标志寄存器
8.逻辑地址与物理地址
逻辑地址1000H:0000H 物理地址10000H 逻辑转物理:1000H*10H+0000H=10000H
物理地址求段基地址(DS)与偏移地址(IP)的范围:
例0B0005H
当偏移地址最小时段基地址最大。(物理地址-偏移地址的结果必须能被10整除)
偏移最小为0005H 段基最大为 (0B0005H-0005H)/10H=0B000H
偏移最小为FFF5H 段基最小为(0B0005H-FFF5H)/10H=0A001H
9.debug常用6命令 t r u e a d (自行在dosbox测试)
10.汇编语言的程序结构
DATA SEGMENT
DA1 DB 4
DA2 DB 6 //数据段
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA //定义CS指向代码段,DS指向数据段
START:
MOV AX,DATA //代码段
MOV DS,AX
MOV AL,DA1
INC AL
MOV DA1,AL
MOV AL,10
SUB AL,DA2
MOV AH,4CH //代码结束必须加上最后这两行,相当于return 0;
INT 21H
CODE ENDS
END START
代码写在一个1.asm的文件中(放入masm文件中)
编译过程 masm 1.asm 输入你想要的文件名如first 然后回车几次 会生成一个first.obj文件
link first.obj 输入你想要的文件名如first 然后回车几次 会生成一个first.exe文件
debug first.exe进入调试模式。就可以用debug命令操作了。用T命令让程序单步执行代码。