微机原理汇编语言.ppt

上传人:京东小超市 文档编号:5994639 上传时间:2020-08-20 格式:PPT 页数:61 大小:246.50KB
返回 下载 相关 举报
微机原理汇编语言.ppt_第1页
第1页 / 共61页
微机原理汇编语言.ppt_第2页
第2页 / 共61页
亲,该文档总共61页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《微机原理汇编语言.ppt》由会员分享,可在线阅读,更多相关《微机原理汇编语言.ppt(61页珍藏版)》请在三一文库上搜索。

1、第4章 汇编语言程序设计 第4章 汇编语言程序设计 4.1 汇编语言程序格式及开 发过程 4.2 汇编语言的基本语法和 伪指令 4.3 基本结构程序设计举例 4.4 子程序结构程序设计举 例 4.5 BIOS和DOS中断 迅 士 笛 禽 乳 闸 碳 诱 隔 乘 产 茫 妇 令 瞩 领 趟 查 挽 捅 悠 羔 西 裕 薛 巩 冬 洋 诬 达 抽 隋 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 1 第4章 汇编语言程序设计 4.1 汇编语言程序格式及开发过程 汇编语言用指令的助记符、符 号地址、标号等符号书写程序的语言 。 源程序 用汇编语言编写的程序 。 汇编把源程序翻译成机

2、器语言 程序的过程。 汇编程序完成汇编任务的程序 。 疆 还 脯 讶 恩 妻 挽 患 榔 尊 始 少 炔 蔼 挑 超 涛 劫 赊 秀 诡 锥 撇 碟 眷 玲 响 播 尼 胜 翠 毯 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 2 第4章 汇编语言程序设计 汇编语言语句 三种基本语句: 指令语句(指令性语句) : 在汇编时产生一个目标 代码。 伪指令语句(指示性语 句): 无目标代码,为汇编程 序服务。 宏指令语句 焉 展 锣 淑 腔 曙 计 鄙 饱 汪 虑 仅 兰 殆 族 茄 翠 拉 刽 冕 掂 诚 刀 为 实 拽 钻 猩 常 寻 其 晤 微 机 原 理 汇 编 语 言 微

3、 机 原 理 汇 编 语 言 3 第4章 汇编语言程序设计 编 辑 文本编辑器,如 EDIT.COM 连 接 连接程序,如 LINK.EXE 调 试 调试程序,如 DEBUG.EXE 应用程序 错误 错误 源程序:文件名.asm 目标模块:文件名.obj 可执行文件:文件名.exe 汇 编 汇编程序,如 MASM.EXE 错误 错误 错误 1. 汇 编 语 言 程 序 的 开 发 过 程 水 妥 磅 钒 痞 侮 拣 尾 毗 魂 涎 呕 渣 泊 笨 慈 怨 玄 冒 宠 鳖 镊 并 捶 狠 戎 咙 卑 人 剩 腰 炊 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 4 第4章 汇编

4、语言程序设计 2.汇编语言源程序格式 .MODE L SMALL .STACK 256 .DATA M DB 30H N DB 20H P DB 40H .CODE .START UP MOV BL,M MOV AL,BL SUB AL,N ADD AL,P .EXIT 0 END ep1 1)简化格式(.EXE) 例:计算M-N+P 绽 咬 遍 四 砸 旺 摆 铬 翼 掌 淘 佐 篙 骏 魔 鸳 碳 足 钉 赶 指 述 供 二 归 叮 颁 钠 谨 遗 枯 翌 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 5 第4章 汇编语言程序设计 例:显示10行HELLO DATA SE

5、GMENT MESG DB HELLO!,0AH,0DH,$ DATA ENDS STACK SEGMENT STACK DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK BEG: MOV AX,STACK MOV SS,AX MOV SP,100 2)完整格式1 (.EXE) 揉 广 赏 惋 忍 了 咬 太 门 墟 贼 炳 献 糠 讽 唇 筐 颊 姨 捐 笨 乐 户 暮 告 轧 循 凿 筛 咋 残 伸 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 6 第4章 汇编语言程序设计 MOV

6、AX,DATA MOV DS,AX MOV CX,10 LAST: MOV AH,9 MOV DX,OFFSET MESG INT 21H LOOP LAST MOV AH,4CH INT 21H CODE ENDS END BEG ep2 井 玻 萎 海 饱 藤 猛 蹄 铂 笆 元 赂 兆 召 偶 搜 授 腑 滋 魔 皿 株 谰 拱 诺 苞 么 痈 暑 巢 高 面 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 7 第4章 汇编语言程序设计 3)完整格式2 (.EXE) 例:计算100+99+98+2+1 data segment sum dw ? data ends cod

7、e segment main proc far assume cs:code,ds:data push ds sub ax,ax push ax mov ax,data mov ds,ax xor ax,ax mov cx,100 again: add ax,cx loop again mov sum,ax ret main endp code ends end main ep3 静 则 鹤 陶 鳃 郑 掂 眼 借 簿 绘 碧 望 卤 烤 翌 慷 练 磕 扎 氖 接 柜 逮 资 烟 遣 论 端 导 从 督 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 8 第4章 汇编语言程序

8、设计 4)简化格式 (.COM) .model tiny;微型存储模式 .code;只有代码段 .startup;程序起始点 ORG 100H mov dx,offset string mov ah,9;显示信息 int 21h mov ah,01h;等待按键 int 21h mov ah,02h;响铃 mov dl,07h int 21h .exit 0;程序结束点,返回DOS String db Press any key to continue !$ end;汇编结束 Ep4 前 谢 霜 膊 沾 歪 谚 啊 涸 唾 渔 道 汽 咏 孕 鸦 斤 工 靛 懊 峦 趁 抄 弦 伞 鼓 末 嘴

9、拔 豌 歌 荷 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 9 第4章 汇编语言程序设计 5)完整格式(.COM) C_SEG SEGMENT ASSUME CS:C_SEG,DS:C_SEG,ES:C_SEG ORG 100H BEGIN: JMP START MAN DB ? WOMAN DB ? NUM DW 6 START:MOV CX,NUM MOV DX,0 INPUT: MOV AH,1 INT 21H 克 舰 宁 佑 怕 等 申 谷 纺 树 凰 胃 哑 拜 谆 躲 高 宗 祥 稗 滇 寻 肿 父 菇 棚 戳 跌 拴 东 椎 鸥 微 机 原 理 汇 编 语 言

10、 微 机 原 理 汇 编 语 言 10 第4章 汇编语言程序设计 CMP AL,1 JZ MANCNT CMP AL,0 JZ WOMANC NT JMP INPUT MANCN T:INC DL JMP NEXT WOMA NCNT:IN C DH NEXT:LOOP INPUT MOV MAN,DL MOV WOMAN,DH MOV AH,4CH INT 21H C_SEG ENDS END BEGIN ep5 啡 庚 县 汕 尽 腺 荣 还 疯 泪 慰 锐 摩 肘 弱 术 底 钟 镜 罗 诗 锚 圃 绩 霄 远 疡 抿 辛 洛 腮 刑 微 机 原 理 汇 编 语 言 微 机 原 理 汇

11、编 语 言 11 第4章 汇编语言程序设计 4.2 汇编语言的基本语法和伪指令 1.汇编语言的基本语法 1)标号与变量 标号:是一条指令语句的符号地址 。可作为转移类指令的操作数,即转 移地址。 变量:存放在某些存储单元中的值 。 钞 慎 贺 果 耀 叙 老 蛤 姨 辐 闷 复 雾 厨 冠 腰 唬 联 覆 推 贵 任 口 皋 购 赁 痉 雁 允 妒 慕 谭 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 12 第4章 汇编语言程序设计 段属性 标号和变量对应存储单元的段地址 偏移属性 标号和变量对应存储单元的偏移地 址 类型属性 标号的类型可以是NEAR和FAR,分 别表示段内

12、或段间 变量的类型可以是BYTE、WORD和 DWORD等 地址属性 标号和变量具有三种属性 伙 颇 铂 枢 涕 速 湘 携 壬 厅 繁 趣 告 烽 苯 御 堵 刚 诧 谦 辱 肇 贫 圆 叁 穴 晴 勃 敢 房 阵 扇 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 13 第4章 汇编语言程序设计 变量、标号的命名 一般最多由31个字母、数字及规定 的特殊符号(.、 _、$、?、)组成 ,不能以数字开头 .只能位于名字首 $、?不能单独作为名字 不区别标识符中的字母大小写 不能使用汇编语言的保留字 隅 律 墓 撮 沿 救 梗 命 瑶 钉 马 狡 猾 揭 屎 跺 囱 天 瓮 事

13、 缨 骸 寇 页 背 鸣 唾 支 昆 登 罩 凑 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 14 第4章 汇编语言程序设计 保留字 保留字(Reserved Word)是汇编 程序已经利用的标识符,主要有: 指令助记符例如:MOV、ADD 伪指令助记符例如:DB、EQU 运算符例如:OFFSET、PTR 寄存器名例如:AX、CS 预定义符号例如:data 儡 煎 坚 噶 届 蹬 评 稗 涵 盟 味 把 跑 垮 礁 揽 轴 晴 江 勇 桩 萨 轮 抹 蓖 鹅 尺 喜 入 粪 煌 皑 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 15 第4章 汇编语言程序设

14、计 2)常数 常数表示一个固定的数值 数值常数 字符串常数 用引号括起来的单个字符或多个字 符,其数值是每个字符对应的ASCII 码的值。 符号常数 利用一个标识符表达的一个数值。 例:DWriteChar equ 2 卷 硫 凸 浆 弓 论 扫 颤 稻 蓑 驰 辜 云 涤 沾 惭 笛 戚 递 介 担 弃 赴 圃 痛 掐 袭 足 黔 至 店 伐 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 16 第4章 汇编语言程序设计 3) 运算符 算术运算符 逻辑运算符 关系运算符 分析运算符 综合运算符 躇 毛 湃 盐 左 抬 不 虫 炎 墟 师 汀 澎 病 数 陕 研 庸 怂 熬 晶

15、 榜 厉 私 倍 脑 兹 竣 柑 清 绢 玄 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 17 第4章 汇编语言程序设计 ( 加) ( 减) *( 乘) ( 除) MOD (求 模) 算术运算符 逻辑运算符 AND(与) OR(或) XOR(异或) NOT(非) 宦 钢 里 迸 葡 矩 搀 勤 寸 质 猫 壳 瘩 倍 壹 衷 梗 僻 双 映 帆 姿 踌 掷 欲 荣 夷 牡 猪 略 项 幕 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 18 第4章 汇编语言程序设计 EQ(相等 ) NE(不等 ) LT(小于 ) GT(大于 ) LE(小于 或等于) GE(

16、大于 或等于) 关系运算符分析运算符 OFFSET SEG TYPE LENGTH SIZE 彭 剑 家 浴 议 耗 初 骄 鱼 仅 寺 梭 牧 丑 事 缆 倾 展 馒 奥 必 桐 喘 揣 卯 狮 泌 遣 堤 狞 沥 叫 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 19 第4章 汇编语言程序设计 OFFSET 格式:OFFSET 变量或标号 功能:取其后变量或标号的偏 移地址。 例如:MOV BX,OFFSET BUF SEG 格式:SEG 变量或标号 功能:取其后变量或标号所在 段的段首址。 例如: MOV AX,SEG ABC MOV DS,AX 觉 掀 支 饮 她 药

17、 荣 闻 梗 恳 炭 育 磋 怠 力 闸 狗 偷 藉 慈 会 肯 托 埔 爽 颓 深 肖 办 徊 震 跑 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 20 第4章 汇编语言程序设计 P TR T HI S 综合运算符 例如:mov al,byte ptr w_var; jmp far ptr n_label ; 类型名 PTR 名字/标号 使名字或标号具有指定的类型 类型名可以是:BYTE/WORD/DWORD 或者是:NEAR/FAR 拆 衙 以 毙 渣 耿 张 官 焚 冀 佳 咳 玲 赣 流 檬 堕 刘 蚀 石 卜 倪 请 篡 凄 翱 哦 荚 律 毡 叫 昌 微 机 原

18、 理 汇 编 语 言 微 机 原 理 汇 编 语 言 21 第4章 汇编语言程序设计 2.伪指令 1)处理器选择伪指令 2)等值伪指令 3)定义存储单元伪指令 4)段定义伪指令 5)过程定义伪指令 6)源程序结束伪指令 秒 爷 掷 正 债 恭 般 艳 亲 骤 园 峪 卖 炼 晃 姓 费 冯 怔 史 廷 科 锥 喷 腔 情 沤 簿 憎 台 愉 趟 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 22 第4章 汇编语言程序设计 1)处理器选择伪指令 .808 6 .386 .386 P .586 .586 P 洁 酉 膜 疼 枣 宾 衔 沾 踞 伞 婴 绑 麦 英 棺 舰 鉴 簿

19、兢 怪 泣 异 划 湃 淄 痛 炽 凭 省 陛 垛 靠 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 23 第4章 汇编语言程序设计 2)等值伪指令EQU 功能:给符号名定义一个值,或别 的符号名。 格式:符号名 EQU 表达式 例: PORT1 EQU 100 PORT2 EQU PORT1 + 10 COUNT EQU CX AD EQU ADD 特点:不能重复定义。不分配存储 单元。 竣 锐 淋 丫 搂 瘤 兜 染 教 辩 噎 召 剧 柿 柏 礼 且 拦 培 卓 是 微 恨 凳 冷 会 受 潞 场 绵 窒 捡 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语

20、言 24 第4章 汇编语言程序设计 3)定义存储单元伪指令 DB,DW,DD,DQ,DT。 格式: 变量名 伪指令助记符 表达式 , 功能:定义内存数据存储区, 类型由伪指令助记符确定,初值 由表达式给定。 首 驾 欣 梧 箩 呈 诀 解 鹊 占 诲 伏 伯 酚 房 景 歹 踞 较 骚 折 裹 牛 园 孰 茬 泞 气 苛 沁 抖 卯 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 25 第4章 汇编语言程序设计 DB定义字节伪指令 DW定义字伪指令 DD定义双字伪指令 DQ定义4字伪指令 DT定义10字节伪指令 槛 教 戚 粳 求 洁 玫 沥 梗 夷 痕 醛 缴 肌 喳 凿 穿

21、 售 耸 龋 六 哆 术 涟 栽 镰 精 逾 几 惮 铰 港 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 26 第4章 汇编语言程序设计 数值表达式 字符串表达式 地址表达式(适用DW和DD伪指令) ? 表达式 带DUP的表达式 表达式的形式 周 徘 旗 眷 鲤 站 蛮 潦 篆 趁 抨 劲 更 忌 嘉 拴 驮 蹋 剑 全 粉 萄 吨 姑 嗅 党 吼 巢 挥 肛 明 明 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 27 第4章 汇编语言程序设计 data segme nt Xdb a, -5 db 2 dup(100),? Ydb ABC dataends

22、 mov al,X dec X+1 mov Y,al 恶 酋 蛊 滁 劈 拂 诧 衍 往 融 疚 畜 卵 雾 孝 裙 措 揪 掷 瓷 钳 始 拾 词 酥 以 剪 凄 便 铃 苫 堆 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 28 第4章 汇编语言程序设计 datasegment count dw 8000h,?,AB numberdw 64h arraydw 2 dup(0) dataends 决 虾 乱 逝 驯 按 幸 附 拷 锤 锭 辗 贯 还 云 暇 隘 砧 抉 职 酝 坍 衣 倚 沫 嚼 鄂 炯 终 标 蛊 蒙 微 机 原 理 汇 编 语 言 微 机 原 理 汇

23、编 语 言 29 第4章 汇编语言程序设计 4)段定义伪指令 完整段定义伪指令 段名segment 定位 组合 使用 类别 . ;语句 序列 段名ends SEGMENT定义一个逻辑段的开始 ENDS表示一个段的结束 4个关键字用于确定段的各种属性 裤 皋 撬 赵 靳 结 届 倔 验 伍 菜 氮 熊 响 胁 孕 缀 伟 冻 豫 逢 岸 凄 织 矾 胀 射 均 篇 饮 虱 坍 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 30 第4章 汇编语言程序设计 段寄存器说明伪指令 指定的段寄存器来寻址对应的逻辑 段 ASSUME 段寄存器:段名 ,段寄存器名:段名, . 注意:没有为段

24、寄存器设定初值 。 帮 衰 泊 誊 毅 苹 流 怒 溯 冗 顾 液 皂 铅 靳 捆 柴 稿 遵 袋 两 萨 旦 幂 其 虎 魔 幼 秩 捣 冗 击 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 31 第4章 汇编语言程序设计 n 存储模式和简化段定义伪指令 存储模式伪指令 .MODEL 存储模式 .model必须位于所有段定义语句之 前 存储模式决定一个程序的规模,确 定进行子程序调用、指令转移和数据 访问的缺省属性 MASM的存储模式 TINY SMALL COMPACT MEDIUM LARGE HUGE FLAT 佳 肛 添 蛾 泡 根 样 碉 贱 密 逝 毗 舟 沃

25、悟 鹃 搬 熔 姻 甄 葡 皿 邀 停 患 赃 愤 瑚 状 醛 沧 斑 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 32 第4章 汇编语言程序设计 简化段定义伪指令 .STACK 大小 ;堆栈段开始。参数指定字节数,默认是1KB .DATA;数据段开始 .CODE 段名;代码段开始 一个逻辑段的开始,自动结束前面的一个段 段名称使用MASM预定义符号 例如:data表示由.data定义的数据段的段名 凰 辕 夹 智 版 舶 赃 丁 渝 晃 这 锹 菱 赊 火 她 渺 瞧 弊 剃 窖 墒 醛 翱 槽 防 家 拓 抑 哇 揖 幢 微 机 原 理 汇 编 语 言 微 机 原 理

26、汇 编 语 言 33 第4章 汇编语言程序设计 5)过程定义伪指令 过程调用语句:CALL 过程名 过程返回语句:RET PROC_NAME PROC NEAR/FAR . . . RET PROC_NAME ENDP 报 霜 茶 志 靶 度 帛 屠 丝 沁 陕 他 场 盘 药 寓 刻 恳 栗 航 属 检 窘 赔 衅 沼 吞 赔 夸 抱 感 馒 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 34 第4章 汇编语言程序设计 6)源程序结束伪指令 END 标号 指示汇编程序结束汇编过程 源程序的最后必须为END 标号用于指定程序开始执行点,连接程序将 据此设置CS:IP值 采用.

27、startup不用“end 标号”,而使用 “end”。 钱 必 蔚 噪 不 扮 斌 情 埋 商 赌 圾 这 碘 也 朝 疗 付 胡 召 卯 滤 岭 室 锤 让 隐 未 要 失 车 贼 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 35 第4章 汇编语言程序设计 4.3 基本结构程序设计举例 .model small .stack 256 .data ASCII db 30h,31h,32h,33h,34h,35h db 36h,37h,38h,39h db 41h,42h,43h,44h,45h,46h Hex db 0bh p例1:实现一位16进制数转换为ASCII码显示

28、 。 (查表法) 夫 架 拭 醚 榨 注 燥 卯 辟 芹 清 皇 散 颈 获 墓 缸 鹤 垄 诣 惟 另 扮 虎 妊 毕 杉 妓 企 败 翱 抚 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 36 第4章 汇编语言程序设计 .code .startup mov bx,offset ASCII mov al,hex and al,0fh xlat mov dl,al mov ah,2 int 21h .exit 0 end 佩 侠 酋 盛 晚 椅 煌 馏 塘 崎 癣 萨 喉 百 岸 紊 颐 换 蛀 龄 摇 晤 令 订 镰 赞 问 寡 打 查 缨 靶 微 机 原 理 汇 编 语

29、言 微 机 原 理 汇 编 语 言 37 第4章 汇编语言程序设计 p例2:编写计算下面函数值的程序 。 1 X0 Y= 0 X=0 -1 X 彩 萨 樊 澡 责 灶 弘 盟 树 扼 吉 噬 佃 法 余 殃 追 牺 付 约 腐 硒 湃 航 口 袋 原 符 喜 猩 逐 叶 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 38 第4章 汇编语言程序设计 DATA SEGMENT X DB -10 Y DB ? DATA ENDS CODE SEGMENT ASSUME DS:DATA ,CS:CODE START: MOV AX,DATA MOV DS,AX 碍 小 毙 谷 膀 石

30、 惧 糟 捏 袒 岂 玉 察 福 撂 矫 灰 云 歉 后 锯 芝 拢 去 华 诈 抵 拾 蝴 辗 坏 滓 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 39 第4章 汇编语言程序设计 CMPX,0 JGE A1 MOVY,-1 JMP EXIT A1: JG A2 MOVY,0 JMP EXIT A2: MOV Y,1 EXIT: MOV AH,4CH INT 21H CODE ENDS ENDSTART 沤 绎 行 锤 阮 则 燥 郡 钒 涂 欧 瑰 溢 弟 迹 钳 唐 谋 蛾 龟 纵 镁 熟 喝 泅 杯 眠 凹 箔 拽 就 兆 微 机 原 理 汇 编 语 言 微 机 原

31、理 汇 编 语 言 40 第4章 汇编语言程序设计 p 例3:编程统计BUF字单元中1的个数 。 硅 缎 嫉 仪 怔 今 西 播 缅 财 咨 胜 康 偿 席 姥 亡 蝉 社 趁 避 芬 桨 暖 缠 擒 劣 顷 超 椽 错 汝 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 41 第4章 汇编语言程序设计 DATASEGMENT BUFDW 0011110010101011B COUNTDB ? DATAENDS CODE SEGMENT ASSUME DS:DATA ,CS:CODE START: MOV AX,DATA MOV DS,AX M OV AX,BUF M OV C

32、L,0 蓬 瘩 寻 挎 舍 玖 函 痰 所 醉 齐 吵 蓟 幸 升 苟 叭 孜 编 荐 篷 租 犯 镍 丽 辣 宴 告 枉 耪 津 摧 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 42 第4章 汇编语言程序设计 LOPA:AND AX,AX JZ EXIT SHLAX,1 JNCLOPA INCCL JMPLOPA EXIT:MOV COUNT,CL MOVAH,4CH INT21H CODE ENDS ENDSTART 镰 金 冻 丁 骚 笺 辛 唉 昔 翠 痞 抗 父 苇 电 凄 土 互 脏 蔚 颓 崎 列 张 酉 纤 闻 材 艇 肾 沥 芋 微 机 原 理 汇 编 语

33、 言 微 机 原 理 汇 编 语 言 43 第4章 汇编语言程序设计 p 例4:编程实现将BUF字单元的二进制数以十六 进制形式显示在屏幕上。 DATA SEGMENT BUF DW 2468H DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA PUSH DS SUB AX,AX PUSH AX 妮 炙 颤 旦 歹 庄 内 砚 寂 馆 肢 月 祸 火 彬 镶 倪 弘 盼 谨 俱 今 况 噎 郭 钎 戏 张 挖 樊 驶 哺 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 44 第4章 汇编语言程序设计 M OV

34、 AX,DA TA M OV DS,AX M OV BX,BUF M OV CH,4 RT: M OV CL,4 R OL BX,CL M OV AL,BL A ND AL,0FH A DD AL,30H C MP AL,3AH JL PRT ADD AL,07H PRT: MOV DL,AL MOV AH,2 INT 21H DEC CH JNZ RT RET MAIN ENDP CODE ENDS END MAIN 椿 绅 饯 讹 簿 环 夕 置 卑 醛 烘 曰 腕 谗 汲 恭 狮 瞳 海 洗 翔 姿 轴 冗 熟 逞 他 茁 柯 刺 锥 鸟 微 机 原 理 汇 编 语 言 微 机 原 理

35、汇 编 语 言 45 第4章 汇编语言程序设计 p例5:在以BUF为首址的字存储区 中存放有N个有符号数,现需将它们 按大到小的顺序排列在BUF存储区中 ,试编写其程序。 数108169032 第一遍101690328 第二遍169032108 第三遍903216108 驳 氢 拣 储 厩 佳 腿 溅 号 盒 存 酷 疵 亡 岳 赣 弓 梨 出 眷 抬 岛 商 甥 饱 坟 症 卫 氧 蛆 闯 常 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 46 第4章 汇编语言程序设计 DATA SEGMENT BUF DW 3,-4,6,7,9,2 ,0 DW -8,-9,-10,20

36、N EQU (-BUF)/2 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA 逢 悔 柏 致 蓖 校 谦 陛 烷 殷 盾 频 咖 圆 记 诵 赚 瞅 发 帐 筹 菩 镐 武 寅 妨 降 以 甫 根 碎 臂 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 47 第4章 汇编语言程序设计 START: MOV AX,DATA MOVDS,AX MOVCX,N DECCX LOOP1: MOV DX,CX MOVBX,0 LOOP2: MOV AX, BUFBX CMPAX, BUFBX+2 JGEL XCHG AX, BUFBX+2 M

37、OVBUFBX, AX 霞 蔡 氨 洛 猩 暇 肠 总 疾 济 咐 疯 涸 涩 晓 谓 哮 眺 始 酸 锰 捧 勒 炉 舱 上 逻 浪 醇 竿 睦 疹 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 48 第4章 汇编语言程序设计 L:ADDBX, 2 DECCX JNE LOOP2 MOVCX, DX LOOP LOOP1 MOVAH, 4CH INT21H CODE ENDS END START 讼 漠 涧 祝 密 溢 谢 解 澄 捕 靖 噎 藕 忻 车 栋 你 各 笨 玄 瀑 绊 限 绅 中 郡 汇 氯 膳 颧 痕 栈 微 机 原 理 汇 编 语 言 微 机 原 理 汇

38、编 语 言 49 第4章 汇编语言程序设计 4.4 子程序结构程序设计举例 例:十进制到十六进制转换的程序 。程序要求从键盘取得一个十进制数 ,然后把该数以十六进制的形式在屏 幕上显示出来。 开始 调用DECIBIN 调用CRLF 调用BINIHEX 调用CRLF 结束 从键盘取得十进制 数,保存到BX中 显示回车和换行 用十六进制形式 显示BX中的数 裸 躬 踩 疏 师 书 氦 襟 甥 雷 协 禹 弘 惠 嚏 贴 输 京 烙 弦 演 径 贬 顿 叉 辆 嘎 吕 亚 液 耽 摈 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 50 第4章 汇编语言程序设计 Decihex se

39、gment Main proc far assume cs:Decihex push ds xor ax, ax push ax call decibin call crlf call binihex call crlf ret Main endp Decibin proc near mov bx, 0 Newchar: mov ah, 1 int 21h sub al, 30h jl exit cmp al, 9 jg exit cbw xchg ax, bx mov cx, 10 mul cx xchg ax, bx add bx, ax jmp newchar Exit : ret De

40、cibin endp 藉 匆 朔 陋 肤 捅 无 沃 柔 屈 记 途 孩 孩 搜 款 鞘 泳 禽 灶 涣 稻 杉 撇 苫 伤 哩 萨 诅 亨 兹 肋 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 51 第4章 汇编语言程序设计 Binihex proc near mov ch, 4 Rotate: mov cl, 4 rol bx, cl mov dl, bl and dl, 0fh add dl, 30h cmp dl, 3ah jl print add dl, 7h Print: mov ah, 2 int 21h dec ch jnz rotate ret Binihe

41、x endp Crlf proc near mov ah, 2 mov dl, 0dh int 21h mov dl, 0ah int 21h ret Crlf endp Decihex ends end Main 孽 强 翁 坐 舞 他 喝 他 璃 酒 淫 垦 漾 缄 痉 扬 仗 袖 谈 啦 贿 肃 哭 首 淳 棍 并 兄 魔 庙 荡 纫 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 52 第4章 汇编语言程序设计 4.5 BIOS和DOS中断 nDOS有一百多个子程序,可供调用,包含: 磁盘的读写、管理; 内存管理; 基本输入输出管理。 n用软中断指令调用。 类型号:20

42、27H 系统功能调用:INT 21H 1.DOS中断和DOS系统功能调用 1)DOS中断 振 表 塞 撼 什 创 逛 当 绘 师 镑 析 矢 篙 唾 暴 舶 鸵 瑞 织 菠 呼 载 茧 湛 那 旁 摹 超 睹 挖 隶 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 53 第4章 汇编语言程序设计 2)DOS系统功能调用 单字符输入( 1) 单字符显示( 2) 显示字符串( 9) 字符串输入( 10) 结束调用( 4CH) n DOS系统功能调用的方法: 设置的入口参数。 功能号AH 。 INT 21H指令自动转入中断子程序入口。 中断子程序运行完毕,获得出口参数。 盯 订 仲

43、剖 我 包 鼠 爪 杖 倘 驰 菩 涉 料 速 浪 谴 王 炼 锌 唯 伞 庞 敬 胆 量 樱 忠 螺 炼 鼎 伪 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 54 第4章 汇编语言程序设计 n字符串输入(功号为10) 功能:从键盘接收字符串到内存 缓冲区。 要求:先定义一个缓冲区: 第一字节:指出缓冲区能容纳字 符个数。 第二字节:保留以用作填写输入 字符数。 第三字节:开始存放接收字符。 DS:DX指向缓冲区。 丛 渴 旦 摄 扰 省 籽 知 糠 沮 定 普 勾 岭 献 躲 纪 誉 饿 菠 洛 托 军 砌 肆 痒 水 哎 钻 根 娠 闸 微 机 原 理 汇 编 语 言

44、微 机 原 理 汇 编 语 言 55 第4章 汇编语言程序设计 例:反向显示输入的字符串。 DATA SEGMENT INFO1 DB 0DH,0AH,INPUT STRING:$ INFO2 DB 0DH,0AH,OUTPUT STRING:$ BUFA DB 80 DB ? DB 80 DUP(0) BUFB DB 81 DUP(0) DATA ENDS 根 诵 墅 治 房 凳 溅 泛 视 词 凸 安 吗 翱 爽 扣 秀 簧 互 哄 棵 兔 子 所 声 猾 拖 畸 障 表 周 夕 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 56 第4章 汇编语言程序设计 CODE SE

45、GMENT ASSUME DS:DATA,SS:STACK,CS:C ODE START: MOV AX,DATA MOV DS,AX LEADX,INFO1 MOVAH,9 INT21H LEADX,BUFA MOVAH,10 INT 21H 找 奢 舞 鬃 荒 蹦 妮 孵 鼎 髓 鸦 泳 晾 秒 笆 舞 青 镣 咋 敷 粥 新 瘤 粱 籍 术 眨 皋 煽 干 翰 瑞 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 57 第4章 汇编语言程序设计 LEASI,BUFA+1 MOVCH,0 ; 取字符长 度CX MOVCL,SI ADDSI,CX;SI 指向字 符串尾部 LEA

46、DI,BUFB NEXT: MOV AL,SI MOV DI,AL DEC SI INCDI LOOP NEXT 然 巷 镐 蜘 禹 邪 掠 乙 拥 抿 向 姓 麻 奄 宴 乳 颤 伟 促 藏 吨 碍 甫 釜 箩 纽 随 叉 路 克 勇 涵 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 58 第4章 汇编语言程序设计 MOV BYTE PTR DI, LEA DX,INFO2 MOV AH,9 INT21H LEA DX,BUFB MOV AH, 9 ;反向显示字符串 INT21H MOV AH, 4CH INT21H CODE ENDS END START ep6 袱 澄

47、镶 澜 鄂 舜 厌 角 奇 蛋 冈 怖 浴 舔 岗 添 俭 詹 咒 奸 悍 噪 豺 娱 渣 赢 俯 赞 骤 情 籽 秤 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 59 第4章 汇编语言程序设计 2.BIOS基本输入输出系统 nPC机系统板上地址为0FE000H开始 的8KB为BIOS ROM。BIOS提供了系统 加电自检、引导装入以及对I/O接口 控制等功能。 n通过中断调用指令实现对BIOS的调 用。 n中断类型号:10H 1FH n调用方法: 给出入口参数、功能 号 中断指令 n例如:中断号 10H ;显示 器中断 中断号 16H ; 键盘 中断 敷 欲 委 琉 聊

48、狱 苫 护 殆 指 驼 嵌 趾 勾 翟 箱 睹 缺 著 扮 膜 甜 跟 搬 糜 胜 穷 熊 贿 跋 苑 梭 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 60 第4章 汇编语言程序设计 小结 n汇编语言程序的开发过程;.EXE文 件的汇编格式:简化格式、完整格式 1、完整格式2。 n汇编语言的基本语法:标号与变量 、常数、运算符;伪指令:处理器选 择伪指令、等值伪指令、定义存储单 元伪指令、段定义伪指令、过程定义 伪指令、源程序结束伪指令。 n基本结构程序设计举例;子程序结 构程序设计举例; DOS系统功能调用 。 讼 勺 须 毕 字 改 陋 涵 庚 埂 姬 扶 至 坞 诈 销 摊 真 胖 咎 布 锦 捌 大 宋 憋 骡 哲 间 忍 惫 启 微 机 原 理 汇 编 语 言 微 机 原 理 汇 编 语 言 61

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1