浙江网站建设商城价格,山东省济宁市嘉祥县建设局网站,推广黄冈软件必备软件,山东网站seo公司第一章计算机组成五部分#xff1a;#xff08;运算器、控制器#xff09;、存储器、输入/输出设备↑↑ CPU ↑↑ ↑内存↑三条总线#xff1a;控制总线、地址总线、数据总线不同进制及BCD码的转换特殊ascll ‘0’~‘9’—— 30H ~ 39H‘A’~‘F’—— 41H ~ 46H回车 —— …第一章计算机组成五部分运算器、控制器、存储器、输入/输出设备 ↑↑ CPU ↑↑ ↑内存↑三条总线控制总线、地址总线、数据总线不同进制及BCD码的转换特殊ascll ‘0’~‘9’—— 30H ~ 39H‘A’~‘F’—— 41H ~ 46H 回车 —— 0DH 换行 —— 0AH溢出判断运算器对有符号数和无符号数同等对待进位保存在CF9进位标志位中当参与运算的两数符号相同结果符号却他们相异时判断溢出第二章16位寄存器AX、BX、CX、DXSI、DIBP、SP其中AX、BX、CX、DX可分为高位低位两个八位寄存器使用如32位操作系统工作模式a. 实模式b. 保护模式c. 虚拟86模式 实模式的特点a. 加电复位之后486工作在实模式下系统在Dos管理下b. 只能访问 1M 内存c. 存储管理部件对存储器只分段不分页每段最大64KBd. 段寄存器中存放段基址实模式下段寄存器存放相应逻辑段基址逻辑段 段基址 偏移地址代码段 CS IP堆栈段 SS SP数据段 DS 根据不同的寻附加段 ES 址方式选择BX/SI/DI物理地址 段基址 * 2^4 偏移量虚拟地址、线性地址、物理地址虚拟地址 —— 分段部件 线性地址线性地址 —— 分页部件 物理地址在实模式下没有分页部件即 线性地址 物理地址第三章指令指令 操作码 操作数指令格式如下标号操作码助记符 [TAB] 操作数多个操作数用 , 隔开 ;注释其中标号表示该条指令的符号地址逻辑地址以下划线或字母开始不超过31个字符标志寄存器C、A、S、P、Z、OC进位/借位标志加减法执行后最高位产生进位或借位则C置1否则置02. A辅助进位/借位加法或减法执行后D3向D4有进位或借位则A置1否则置03. S符号寄存器S标志记录结果的最高位的值4. P奇偶标志根据运算结果低8位中 1 的个数判定个数为偶数则P置1奇数则置0P只关心低8位5. Z全〇标志isZero( ) 若全为零则置16. O溢出标志位若溢出则置1寻址方式立即寻址只能用于源操作数不能用于目标操作数常用于赋值16进制表示时开头为 A~F时需要在开头加02. 寄存器寻址立即数在寄存器中3. 直接寻址形式a. 段寄存器[偏移地址] 如Mov AX, DS:[45H]b. 段寄存器变量名 如Mov AX, DS:Buf4. 间接寻址BP SSBX SI DI DS5. 基址寻址BP SSBX DS段寄存器[基址寄存器 位移量]6. 变址寻址SI DI DS段寄存器[比例因子 * 变址寄存器 位移量]7. 基变段寄存器[基址寄存器 比例因子 * 变址寄存器 位移量]符号指令和伪指令;数据定义伪指令 用于定义变量
DB 定义字节变量
DW 定义字变量
DD 定义双字变量;符号定义伪指令 用于定义常量和符号名
EQU 等值伪指令定义出来视为常量等号伪指令等号伪指令定义出来的常量值可变EQU定义出来的不可变;数值回送运算符
SEG 回送逻辑段的段基址或标号/变量所在逻辑段的段基址
OFFSET 回送标号/变量的偏移地址
TYPR 回送标号或变量的类型字节返回1字返回2双字返回3
$ 使用 $ 统计之前的所有字符长度 常数不算紧跟在DBDWDD之后可以统计字符串长度;属性操作符
PTR 格式
类型说明符 PTR 标号或变量的地址表达形式
1. 寄存器前不能加 PTR 内存数前才可以
2. 长度不确定时使用MOV WORD PTR [BX], 1234
3. 有变量且长度不一致MOV AX, WORD PTR BUF基本指令集1. MOV
格式MOV 目标操作数, 源操作数立即数不能做目标操作数
不可同时操作内存数
不可同时操作段寄存器
不允许将立即数传入段寄存器2. LEA 偏移地址传送指令
格式LEA 目标操作数, 源操作数MOV BX, OFFSET BUF
LEA BX, BUF
上两句等价目标操作数要为16/32位寄存器不影响6个标志位3. XCHG
格式XCHG 目标操作数, 源操作数
将目标操作数和源操作数数据交换不能同时为内存数段寄存器立即数4. 堆栈操作
进出堆栈 的数据长度必须为字或双字
4.1 PUSH
格式PUSH 操作数
将源操作数压入栈中16位时 sp-2 - (sp)
4.2 POP
格式POP 操作数
将栈顶元素弹出sp 2 - (sp)
4.3 PUSHA/POPA
全部压入栈/弹出栈5.加减法
5.1 加法
5.1.1 ADD
格式ADD 目标操作数, 源操作数
源操作数 目标操作数 - 目标操作数
两数等长且不可同为内存数段寄存器
5.1.2 ADC
格式ADC 目标操作数, 源操作数
CF 目标操作数 源操作数
5.2 减法
5.2.1 SUB
格式SUB 目标操作数, 源操作数
目标操作数 - 源操作数 - 目标操作数
5.2.2 SBB
格式SBB 目标操作数, 源操作数
目标操作数 - 源操作数 - CF - 目标操作数
6 CMP
格式CMP 目标操作数源操作数
只改变6个标志位不保存运算结果
目标操作数不可为立即数
7 自增自减
7.1 INC
格式INC 目标操作数
目标操作数自增1
7.2 DEC
格式DEC 目标操作数
目标操作数自减1
8 NEG
格式NEG 目标操作数
将目标操作数求补后即0-目标操作数的结果补码的形式送入目标操作数
9 逻辑运算
9.1 AND与
格式AND 目标操作数源操作数
将目标操作数与源操作数相与送入目标操作数
常常用于指定位清零置0
9.2 OR或
格式OR 目标操作数源操作数
将源操作数与目标操作数相或放入目标操作数
常用于指定位置1
9.3 NOT非
格式NOT 目标操作数
将目标操作数按位取反送回目标操作数中
9.4 XOR异或
格式XOR 目标操作数源操作数
将目标操作数和源操作数异或送入目标操作数中
常用于指定位取反
10 TEST测试指令
格式TEST 目标操作数源操作数
将两数进行与运算结果不保存C、O置0对A未定义S、P、Z按结果设置
11 移位指令
11.1 开环移位指令 算术左移 SAL 操作数移位次数算术右移 SAR 操作数移位次数逻辑左移 SHL 操作数移位次数逻辑右移 SHR 操作数移位次数
11.2 闭环移位指令含进位的循环左移 RCL 操作数移位次数含进位的循环右移 RCR 操作数移位次数不含进位的循环左移ROL 操作数移位次数不含进位的循环右移ROR 操作数移位次数
12 循环转移指令
12.1 JMP无条件转移
格式JMP 标号
12.2 LOOP
格式LOOP 标号
例MOV CX, 7
A: ...LOOP A
即循环7次
12.3 条件转移指令
JZ/JE Z为1
JNZ/JNE Z为0
JS S为1
JNS S为0
JO O为1
JNO O为0
JP P为1
JNP P为0
JC C为1
JNC C为0
12.4 无符号数大小比较CMP X, Y
JA X Y
JNA X Y
JC X Y
JNC X Y
12.5 有符号数大小比较CMP X, Y
JG X Y
JGE X Y
JL X Y
JLE X Y
13 子程序
子程序格式
CALL [子程序名]
...
...
[子程序名] PROC
...
RET
ENDP第四章EXE源程序的编程结构DATA SEGMENT USE16......(数据定义DATA ENDSCODE SEGMENT USE16BEG: ...... ...CODE ENDSEND BEG开发过程a. 编辑程序设该程序为 a.asmb. 汇编该程序 masm a.asm(书上为ml/c a.asm)产生 a.obj文件c. 链接 link a.objd. 执行 a.exe部分dos/bios功能01H例子 MOV AH, 1 INT 21H等待从键盘输入一个字符同时将该字符显示在显示器上入口参数无出口参数AL 按键 ASCLL值2. 02H例子MOV DL, A MOV AH, 2 INT 21H在屏幕上显示一个字符光标右移一位入口参数DL 显示字符的ASCLL出口参数无注会破坏AL寄存器3. 09H显示字符串入口参数DS:DX 字符串首地屏幕上 字符串必须$结尾出口参数无注会破坏AL4. 0AH等待字符串输入保存入缓冲区同时在屏幕上显示入口参数DS: DX 输入数据缓冲区首地址以回车为标志缓冲区首单元放置预计可接受字符个数buf1格放置实际字符数不包含回车符串由buf2 开始存储。缓冲区不接受超长字符。5. 0EHbios输出字符。MOV AH 0EHMOV AL ‘A’INT 10H