8088汇编语言学习笔记

第一章   8088汇编语言程序由下列四个部分组成:
1,代码段
2,数据段
3,标号
4,注释

(代码段)每条汇编语言指令由两个基本部分组成:
操作符(operation)和操作数(operands)

   操作符            操作数
   mov               ax,3
尽管所有的汇编语言指令都需要操作符,但不一定需要操作数。

(数据段)汇编伪指令(assembler directives)

(标号)  由数字,字母和字符?,。,·,$组成。
名称不能以数字打头
点号只能能作标号的第一个字符。
标号的长度不限,但只有前31个字符有效。
除非标号用于连接汇编伪指令,否则后面必须跟一个分号.

编译  masm first.asm
链接  link first
调试  debug first.exe
反汇编  -u
单步执行 -t
察看内存  -d

 

 

第二章   8088体系结构
存储器单元
8088寄存器组
计算机存储器
输入/输出设备

七种基本存储单元类型
位(bits)                              1
半字节(nibbles)               4
字节(bytes)                       8
字(words)                         16
双字(doublewords)        32
四字(quadwords)            64
十字(tenbytes)                  80

寄存器组
    专用存储单元叫做寄存器
   AX,BX,CX,DX,BP,SI,DI,SP,CS,DS,ES,SS,FLAGS,IP

 

 

第三章    数据表示法
二进制数字
十进制数字系统
十六进制数字系统
正数和负数
布尔运算符
二进制编码的十进制
浮点数
字符和字符串

负数表示 :取反+1

浮点数表示  :
       1,先把十进制数换位二进制数 。
       2,将二进制数移位成如下形式: v=(-1)S*M*2E   M(1,2)
       3,M去去然后在M后面补0凑齐23位 。将E加上127然后转换成8位 二进制数e。
       4,S +e+M(补齐23位 )
       

 

第四章     使用数据工作
1,伪指令,常数和运算符

使用汇编语言伪指令可以生成汇编语言程序中的数据值。

伪指令:
DB  DW  DD  DQ   DT
EQU   =   
RADIX

运算符:
+    -     *    /    MOD    NOT    AND     OR     XOR    SHL     SHR       EQ    NE     LT        LE       GT           
GE        SEG       OFFSET     TYPE     LENGTH  
SEZE     HIGH     LOW       PTR       :

位置计数器  $

 

第五章     8088指令集
数据传送指令
算术指令
数据转换指令
位串和布尔指令
程序控制和重复指令
标志指令
其他指令

数据传送指令
MOV    XCHG    LDS    LES    LEA     XLAT   

算术指令
INC      DEC      NEG     ADD     ADC     SUB     SBB    MUL     IMUL    DIV   IDIV

数据转换指令
CBW    CWD     AAA     AAS      AAM    AAD    DAA    DAS   

布尔指令
NOT    AND     OR     XOR   

循环和移位指令
ROL    ROR     RCL    RCR    SAL     SAR    SHL     SHR    

比较指令
CMP    TEST   

跳转指令
JMP    JA(JNBE)      JAE(JNB)     JB(JNAE)    JBE(JNA)     JC     JE     JG(JNLE)
JGE(JNL)     JL(JNGE)     JLE(JNG)      JNC     JNE     JNO     JNP(JPO)  JNS    JNZ    JO    JP(JPE)     JS    JCXZ   

重复指令
LOOP    LOOPE(LOOPZ )     LOOPNE(LOOPNZ)

其他指令
CLC     CLD     CLI      CMC      LAHF    NOP    SAHF   STC    STD    STI  

 

第六章    寻址方式
四种寻址方式  1,立即寻址方式,寄存器寻址方式,直接寻址方式和间接寻址方式。
使用这四种寻址方式

间接存储器寻址方式
四种基本类型:
。寄存器间接寻址方式
。基址或变址寻址方式
。基址变址寻址方式
。带位移的基址变址寻址方式

 

第七章    结构化程序设计
顺序
选择
重复

 

第八章   字符串
传送字符串
装入字符串
存储字符串
比较字符串
扫描字符串

传送字符串
MOVS(传送字符串)
MOVSB(传送字节串)
MOVSW(传送字串)

装入字符串
LODS(装入字符串)
LODB(装入字节串)
LODSW(装入字串)

存储字符串
STOS(存储字符串)
STOSB(存储字节串)
STOSW(存储字串)

比较字符串
CMPS(比较字符串)
CMPSB(比较字节串)
CMPSW(比较字串)

扫描字符串
SCAS(扫描字符串)
SCASB(扫描字节串)
SCASW(扫描字串)

 

第九章    结构和记录
结构
记录

结构
name struc
field declaration
...
field declaration
name ends

结构变量
name strucname initial value,initial value

引用结构字段
variable, field

记录
name record  field,field
例: colorcode   record    blink:1, back:3, intensity:1, fore:3

记录变量
name  recordname    <initial value,  initial  value,etc>

MASK  (屏蔽)运算返回特定记录字段的位屏蔽值。
WIDTH (宽度)运算返回字段或记录的位数。

 

第十章     堆栈

程序在存储器中的分布:

高端存储器
堆栈
空闲存储器
数据区
代码段
低端存储器

读写堆栈
push     operand
pop        operand

operand是AX,BX,CX,DX,SP,BP,SI,DI,ES,CS,SS,DS,或Mem16。

标志和堆栈
pushf
popf

 

第十一章    过程

使用PROC和ENDP可以在汇编语言中创建过程。
name  proc   type
             instruction
             ..
             ..
             instruction
name endp

name 是过程的名字
type    NEAR或FAR。若此项忽略,则为NEAR。若过程是远调用,就必须标明过程为FAR。
instruction 是一个汇编语言代码语句

连接
call operand
operand 是一个标号,Reg16,或Mem16。

返回
RET

参数传递的三种方法
一:通过寄存器
二:通过堆栈
三:通过指向寄存器或堆栈中实际参数的指针

 

 

第十二章   端口

IN
OUT

INS          从端口输入字符串
INSB       从端口输入字节串
INSW      从端口输入字串

OUTS      向端口输出字符串
OUTSB    向端口输出字节串
OUTSW   向端口输出字符串

 

第十三章     中断

INT
INTO

中断处理程序

CLI
STI

 

第十四章   条件汇编
IF    ENDIF
IF    ELSE     ENDIF
IFDEF       ENDIF
IFNDEF    ENDIF

第十五章      等价与宏

不可重复定义的数值等价
可重复定义的数值等价
字符串等价

局部标号
重复块
推出宏
宏操作

不可重复定义的数值等价
EQU

可重复定义的数值等价
=

字符串等价
EQU (处理字符串时可重复定义)


定义
name    MACRO    parameter,parameter,etc
  statements
                ....
                ....
                statements
                 endm
使用
name   argument,argument,etc

局部标号
定义  
local    name,name,name

重复块
REPT  expression
statement
..
statement
endm

IRP     parameter,<argument>
statement
..
statement
endm

IRPC parameter,argument
statement
..
statement
endm

推出宏
EXITM

宏操作
& 替代      <>字符串    !转义     %计算值

宏注释   ;;

 

第十六章    汇编语言和C/C++的接口

函数和变量名
参数传递
返回调用程序
局部变量空间

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值