8086指令系统汇编实训实例

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8086指令系统实训实例

一、80x86微处理器中的寄存器

图1-1 80x86微处理器的基本结构寄存器

标志寄存器对照表

标志名称 设置 未设置 标志名称 设置 未设置 溢出 OV(溢出) NV(未溢出) 零位 ZR (为0) NZ(不等于零) 方向 UP(增加) DN (减少) 辅助进位 AC (有进位)NA(无进位) 中断 EI(许可) DI(禁止) 奇偶标志 PE(偶) PO(奇) 符号 NG(负) PL(正) 进位 CY (有进位) NC(清除进位)

累加器基址寄存器 计数寄存器 数据寄存器 堆栈指针寄存器 基址指针寄存器 源变址寄存器 目的变址寄存器 指令指针寄存器 标志寄存器 代码段寄存器 段寄存器 附加段寄存器

堆栈段寄存器 数据寄存器

地址指针和 变址寄存器 控制寄存器 通用寄存器

数据段寄存器

二、用DEBUG软件学习汇编语言

DEBUG的几点规则说明:

1.所有数据默认为16进制数,后缀“H”不用加;

2.DEBUG命令都是一个字母,字母大小写不分,后面的参数可以用空格分开,

也可以不用;命令与数字之间可以不分开,但是两个十六进制数字之间必须分开,如:

L100 = L 100;100 110 ≠100110 ;

3.DEBUG中的地址表示格式有如下几种:

1)段寄存器:偏移量,如:cs:100

2)段地址:偏移量,如:04ba:100 或4ba:100

3)默认段寄存器不写,只写偏移量,如:100;

4)确定地址范围可以有两种表示方式:

a)段地址:起始地址的偏移量结束地址的偏移量,如:cs:100 110;

b)段地址:起始地址的偏移量L(长度),如:cs:100 L10;

DEBUG软件基本指令用法一览表

实例:查看主板BIOS信息:

①输入“D FE00:0”,回车后看到的结果就是主板BIOS的厂商信息。

②接着再输入“D FFFF:5 L 8”,回车后,主板的BIOS版本日期也出来了。

三、ASCII码与BCD编码

ASCII码是美国国家信息交换标准字符码(American Standard Code for Information Interchange )的字头缩码。早期的ASCII码采用7位二进制代码对字符进行编码。它包括32个通用控制字符,10个阿拉伯数字,52个英文大,小字母,34个专用符号共128个。7位ASCII代码在最高位添加一个“0”组成8位代码,正好占一个字节,在存储和传输信息中,最高位常作为奇偶校验位使用。扩展ASCII码,即第八位不再视为校验位而是当作编码位使用。扩展 ASCII 码有256个。

数0-9 ASCII码的编码值为30H-39H,大写英文字母A-Z的编码值为41H-5AH,小写英文字母a-z的编码值为61H-7AH。

四、DOS常用的几个系统功能调用

1. 调用方法:

DOS功能调用的子程序已按顺序编号,功能号(00H~68H),其调用方法是:

(1) 功能号→AH

(2) 入口参数、出口参数→指定寄存器

(3) INT 21H

(4) INT 20H 此为结束语句

2、常用的系统功能调用

1) 1号调用——从键盘输入单个字符

人口参数:ah=01 ; 出口参数:al=输入字符的ascii码

功能:等待从键盘输入一个字符并送入al。

2) 2号调用——在显示器上显示输出单个字符

人口参数:ah=02 ; 出口参数:dl=待显示字符的ascii码

功能:将dl中的字符送显示器显示。

3) 9号调用——在显示器上显示输出字符串

入口参数:ah=09h; ds:dx=字符串的起始地址;

功能:将当前数据区中DS:DX所指向的字符串送显示器显示,注意字符串必须以'$' 结尾。

4) 0AH号调用——从键盘输入字符串

入口参数:ah=0ah; ds:dx=输入缓冲区的起始地址;

第1个字节指出缓冲区能容纳的字符个数,即缓冲区长度,不能为0。

第2个字节保留,以存放实际输入的字符个数。

第3个字节开始存放从键盘输入的字符串。

功能:从键盘接收字符串送入内存的缓冲区,同时送显示显示。

五、命名文件过程

1.N 文件名.COM ;命名文件,文件必须以.com结尾

2.输入 RBX ;查看 BX 寄存器,存放文件长度值高八位

3.输入 RCX ;以CX存放文件长度值的低八位

4.输入 W ;用W命令将该程序写入磁盘中,即存盘

六、DEBUG实验程序

1. 显示一个字符

MOV DL,41

MOV AH,2

INT 21

INT 20

2. 显示所有ASCII码的程序

MOV CX,0100

MOV DL,00

MOV AH,02 ;0105

INT 21

INC DL

LOOP 0105

INT 20

3. 由键盘输入任意字符串,然后显示出来

MOV DX,0116 ;0116:字符个数,0117:实际输入数(包含$),0118:实际数MOV AH,0A

INT 21

MOV DL,0A

MOV AH,02

INT 21

MOV DX,0118

MOV AH,09

INT 21

INT 20 ;0114

DB 20 ;0116

0116 06

4. 显示一字符串

MOV DX,109

MOV AH,09

INT 21

INT 20

DB 'May I help you? $' ;0109

5. 将1~16放入以2000H开始的单元中;

MOV BX,2000

MOV CX,0010

MOV AL,01

MOV [BX],AL ;0108

INC AL

INC BX

LOOP 0108

INT 20

相关文档
最新文档