新版汇编语言程序设计习题答案(钱晓捷主编)(6)
jne abc jmp done abc: inc ax done: .... 5.4;
宏定义采用一对伪指令实现,格式如下(其中方括号表示可选): 宏名 macro [形参表] 宏定义体 endm
宏调用时,利用宏名带上实参即可,格式如下: 宏名 [实参表]
5.6;宏的参数功能非常强大,即可以没有参数,也可以带有一个或多个参数;而且参数的形式非常灵活,可以是常量、变量、存储单元、指令或它们的一部分,还可以是表达式等。
宏展开时的形参与实参结合是用位置匹配的实参对形参进行取代。实参个数与形参个数不同时,多余的实参没有作用,缺少的实参则用空格代替。取代时,不进行有效性等检查。
5.7;宏汇编的特点是在汇编阶段进行语句展开,无需返回,不减少目标程序代码,执行速度没有改变;通过形参、实参结合传递参数。宏汇编适合于程序段较短或要求执行速度快的场合。
子程序在执行阶段需要由主程序执行调用指令CALL进行调用,进而转入子程序执行,子程序执行结束执行返回指令RET返回主程序。子程序如果被多次使用,则会减少目标程序代码;主程序与子程序之间主要采用寄存器、存储单元、堆栈等传递参数。子程序适合于程序段较长或为减少目标代码的场合。 5.9;shrot word ptr [bx],4,ror 1 push cx 1 mov cl,4
1 ror word ptr [bx],cl 1 pop cx 5.10;
logical macro lcode,dopd,sopd lcode dopd,sopd endm
例如,如果使用“and ax,[bx]”指令,可以利用该宏定义,写出宏指令如下:
第 26 页 共 29 页
logical and,ax,[bx]
初看起来,这个问题似乎比较难解决。实际上,这4条逻辑指令都具有相同的指令操作数格式,所以可以归纳为如上宏定义。
5.12; move MACRO doprnd,soprnd push ax mov ax,soprnd mov doprnd,ax pop ax ENDM 5.13;
movstr strN,dstr,sstr lea si, sstr lea di, dstr mov cx, strN cld rep movsb endm
5.14; ①ABSDIF Pl,P2,DISTANCE ②ABSDIF [BX],[SI],[DI] 1 push ax 答:1 push ax 1 mov ax,P1 1 mov ax,[bx] 1 sub ax,P2 1 sub ax,[si] 1 cmp ax,0 1 cmp ax,0 1 jge ?? 0000 1 jge ?? 0000 1 neg ax 1 neg ax 1 ?? 0000 1 ?? 0000
1 mov DISTANCE, ax 1 mov [di],ax 1 pop ax 1 pop ax 5.15; wtemp =2 repeat 100 dw 0 dw wtemp wtemp =wtemp+2 endm
第 27 页 共 29 页
5.18; DOS21H MACRO callnum,calladdress mov ah,callnum ifnb
mov dx,calladdress endif int 21h ENDM
5.22; 1.编写主程序,并进行汇编产生OBJ模块; 2.编写独立的子程序,也进行汇编产生OBJ模块;
3.分别编写主程序与子程序时,需要处理好共用变量、过程、逻辑段属性、参数传递等问题;
4.利用连接程序将主程序模块和子程序模块连接起来,形成完整的可执行程序。 5.28; ;数据段
table dw 2277,2138,1808,1709,1522,1356,1208,1139 ;对应中音1 ~ 7和高音i的定时器记数值 ;代码段
mov al,0b6h ;设置定时器2工作方式 out 43h,al
again: mov ah,1 ;等待按键 int 21h
cmp al,’1’ ;判断是否为数字1~8 jb next cmp al,’8’ ja next sub al,30h
;1~8的ASCII码转换为二进制数 sub al,1
;再减1,将数字1~8变为0~7,以便查表 xor ah,ah
shl ax,1 ;乘以2 mov bx,ax
;记数值表是16位数据,无法采用xlat指令 mov ax,table[bx] ;取出对应的记数值 out 42h,al ;设置定时器2的记数值 mov al,ah out 42h,al
in al,61h ;打开扬声器声音
第 28 页 共 29 页
or al,03h ;使D1D0=PB1PB0=11b,其他位不变 out 61h,al
jmp again ;连续发声,直到按下另一个键 next: push ax
in al,61h ;不是数字1~8,则关闭扬声器声音 and al,0fch ;使D1D0=PB1PB0=00b,其他位不变 out 61h,al pop ax
cmp al,1bh jne again ;判断是否为ESC键(对应ASCII码1bh) ;不是ESC,继续;否则程序执行结束
第 29 页 共 29 页
…… 此处隐藏:360字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




