汇编语言程序设计(第四版)第3章【课后答案】(2)
〔习题3.18〕在SMALL存储模式下,简化段定义格式的代码段、数据段和堆栈段的缺省段名、定位、组合以及类别属性分别是什么?
〔解答〕
段定义伪指令 段名 定位 组合 类别 组名
.CODE _TEXT WORD PUBLIC 'CODE'
.DATA _DATA WORD PUBLIC 'DATA' DGROUP
.DATA? _BSS WORD PUBLIC 'BSS' DGROUP
.STACK STACK PARA STACK 'STACK' DGROUP
〔习题3.19〕如何用指令代码代替.startup和.exit指令,使得例题3.1a能够在MASM 5.x下汇编通过?
〔解答〕
;lt301a.asm(文件名)
.model small
.stack
.data
string db Hello,Everybody ! ,0dh,0ah. $
.code
start: mov ax ,@data
mov ds,ax
mov dx,offset string
mov ah,9
int 21h
mov ax ,4c00h
汇编语言程序设计(第四版)第3章【课后答案】 钱晓捷 主编
int 21h
end start
〔习题3.20〕创建一个COM程序完成例题3.1的功能。
〔解答〕
;lt301a,asm
.model tiny
.code
.startup
mov dx,offset string
mov ah,9
int 21h
.exit 0
string db 'Hello,Everybody!'0dh,0ah,'$' ;
end
〔习题3.21〕按下面要求写一个简化段定义格式的源程序
(1) 定义常量num,其值为5;数据段中定义字数组变量datalist,它的头5个字单元中依次存放-1、0、2、5和4,最后1个单元初值不定;
(2) 代码段中的程序将datalist中头num个数的累加和存入datalist的最后1个字单元中。 〔解答〕
.model small
.stack
.data
num equ 5
datalist dw -1,0,2,5,4,?
.code
.startup
mov bx,offset datalist
mov cx,num
xor ax,ax
汇编语言程序设计(第四版)第3章【课后答案】 钱晓捷 主编
again: add ax,[bx]
inc bx
inc bx
loop again
mov [bx],ax
.exit 0
end
〔习题3.22〕按下面要求写一个完整段定义格式的源程序
(1)数据段从双字边界开始,其中定义一个100字节的数组,同时该段还作为附加段;
(2)堆栈段从节边界开始,组合类型为stack;
(3)代码段的类别是 code ,指定段寄存器对应的逻辑段;主程序指定从100h开始,给有关段寄存器赋初值;将数组元素全部设置为64h。
〔解答〕
stack segment para stack
dw 512 dup(?)
stack ends
data segment
array db 100 dup(?)
data ends
code segment code
assume cs:code,ds:data,es:data,ss:stack
org 100h
start: mov ax,data
mov ds,ax
mov es,ax
mov di,offset array
mov al,64h
mov cx,100
cld
rep stosb
汇编语言程序设计(第四版)第3章【课后答案】 钱晓捷 主编
mov ax,4c00h
int 21h
code ends
end start
〔习题3.23〕编制程序完成两个已知双精度数(4字节)A和B相加并将结果存入双精度变量单元SUM中(不考虑溢出)。
〔解答〕
;xt327.asm
.model small
.stack 256 ;定义堆栈段大小为256个字节
.data
A dd 11223344h ;定义两个双字的数(随意)
B dd 77553311h
sum dd ? ;定义结果,执行后为:88776655h
.code
.startup
xor si, si ;相对于变量的位移量清零
mov cx, 2 ;分高低字分别相加,共两次
clc ;清零cf
again: mov ax, word ptr A[si] ;取第一个数的一个字(先低字后高字)
adc ax, word ptr B[si] ;取第二个数的一个字(先低字后高字)
mov word ptr sum[si], ax ;存和的一个字(先低字后高字)
inc si ;修改位移量指向下一个字(加2)
inc si
loop again ;cx=cx-1 ,if cx<>0 ,jump again
.exit 0
end
〔习题3.24〕编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H等10个字节数据之和,并将结果存入字节变量SUM中(不考虑溢出)。
〔解答〕
汇编语言程序设计(第四版)第3章【课后答案】 钱晓捷 主编
.startup
xor si, si ;位移量清零
mov al, bdata[si] ;取第一个数
mov cx, num-1 ;累加次数
again: inc si ;指向下一个数
adc al, bdata[si] ;累加
loop again ;如未完,继续累加
mov sum, al ;完了,存结果
.exit 0
end
〔习题3.25〕结构数据类型如何说明、结构变量如何定义、结构字段如何引用?
〔解答〕
结构类型的说明使用一对伪指令STRUCT(MASM5.x是STRUC,功能相同)和ENDS。它们的格式为:
结构名 STRUCT
… ;数据定义语句
结构名 ENDS
结构变量定义的格式为:
变量名,结构名 〈字段初值表〉
引用结构字段,采用圆点“.”操作符,其格式是:
结构变量名.结构字段名。
〔习题3.26〕记录数据类型如何说明,记录变量如何定义,width和mask操作符是什么作用?
〔解答〕
记录类型的说明采用伪指令RECORD,它的格式为:
记录名 RECORD 位段[,位段…]
定义记录变量的格式:
记录变量名 记录名 〈段初值表〉
Width记录名/记录位段名操作符返回记录或记录位段所占用的位数。
mask记录位段名操作符返回一个8位或16位数值,其中对应该位段的个位为1,其余位为0。
汇编语言程序设计(第四版)第3章【课后答案】 钱晓捷 主编
…… 此处隐藏:951字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用文档]李践-有效提升销售的12大黄金法则8-大
- [实用文档]党支部换届工作方案
- [实用文档]2013年下期电子商务专业部宣传工作计划
- [实用文档]方庄一矿通风、钻探绩效工资考核管理办
- [实用文档]项目一 认识企业物流认识企业物流
- [实用文档]MBI_Display_产品蓝图规画
- [实用文档]北京市建筑业劳务作业人员普法维权培训
- [实用文档]锅炉燃烧调整与运行优化
- [实用文档]4支付结算业务的核算
- [实用文档]米什金_货币金融学_第9版各章学习指导
- [实用文档]水泥混凝土路面硬化工程施工组织设计
- [实用文档]钢筋工程安全技术交底书
- [实用文档]关于公布华中师范大学本科毕业论文
- [实用文档]太原市园林绿化施工合同范本 2
- [实用文档]周日辅导 初中英语分类复习单项选择题(
- [实用文档]第四章 文化经纪人的管理形式 第二节
- [实用文档]学宪法讲宪法竞赛题库
- [实用文档]《数值计算方法》期末考试模拟试题二
- [实用文档]爱词霸学英语:每日一句( 十月)
- [实用文档]2014年国家公务员面试:无领导小组讨论
- 新课程主要理念和教学案例分析汇编(24
- 英国人的快乐源于幸福的家庭生活
- 七年级上册第一次月考模拟数学试卷
- 真丝及仿真丝的种类有哪些?
- 【最新】华师大版八年级数学下册第十六
- 高中英语3500个必背单词
- 我可以接受失败,但我不能接受放弃!
- 最近更新沪科版八年级物理上册期末试卷
- 绿化工作先进乡镇事迹材料
- 鲁教版九年级上册思想品德教学计划
- 英语音标的分类
- 地下室底板无梁楼盖与普通梁板结构形式
- 美容师黄金销售话术
- 雅思写作满分作文备考方法
- 血清甲状腺激素测定与高频彩色多普勒超
- 1度浅析装修对室内空气品质的影响
- 2017-2022年中国汞矿行业深度分析与投
- 计算机二级VB公共基础知识
- (何勇)秸秆禁烧_重在寻找出路
- 内外墙抹灰工程分包施工合同1




