新版汇编语言程序设计习题答案(钱晓捷主编)(4)
int 21h
gtekey: mov ah,1 ;调用BIOS判断按键功能 int 16h
jz getkey ;如 zf = 0,无键按下,等待 cmp al,‘0’ ;有键按下,键值与‘0’比较 jb error ;如 < ‘0’,出错处理
cmp al, ‘9 ’ ;有键按下,键值与 ‘9’比较 ja error ;如 〉‘9’,出错处理
mov ah,02h ;调用DOS显示字符功能,显示该数字 mov dl,al int 21h
.exit 0 ;终止程序执行,返回DOS
error: mov ah,09h ; 出错,调用DOS 功能显示str2字符串 mov dx,offset str2 int 21h
jmp getkey ;等待按键 end ; 汇编结束
3.7、将第2章习题2.37采用完整段定义格式编写成一个完整的源程序。 ;xt307.asm stack segment dw 512 dup(?) stack ends data segment array db 255 db 0
array1 db 255 dup('$') array2 db 0dh,0ah,'$' data ends
code segment 'code'
assume cs:code, ds:data, ss:stack start: mov ax,data mov ds,ax
mov ah,0ah ; 键盘输入字符串 mov dx,offset array int 21h
第 16 页 共 29 页
mov dx,offset array2 ; 回车换行 mov ah,09h int 21h
mov bx,offset array1 again: mov al,[bx] cmp al,'$' jz done
cmp al,'a' ; 小于a和大于z的字符不是小写字母 jb next cmp al,'z' ja next
sub al,20h ; 在a和z之间的字符才是小写字母,转换为大写 mov [bx],al ; 保存到原位置 next: inc bx jmp again
done: mov dx,offset array1 mov ah,09h int 21h mov ax,4c00h int 21h code ends end start
3.8、区分下列概念:
(1)变量和标号 (2)数值表达式和地址表达式 (3)符号常量和字符串常量 3.9; 假设myword是一个字变量,mybyte1和mybyte2是两个字节变量,指出下列语句中的错误原
因。
(1) mov byte ptr [bx],1000 ;1000超出了一个字节范围
(2) mov bx,offset myword[si];寄存器的值只有程序执行时才能确定, ;而offset是汇编过程计算偏移地址,故无法确定 ;可以改为lea bx,myword[si]
(3) cmp mybyte1,mybyte2 ;两个都是存储单元,指令不允许
(4) mov al,mybyte1+mybyte2 ;变量值只有执行时才确定,汇编过程不能计算 (5) sub al,myword ;字节量AL与字量myword,类型不匹配 (6) jnz myword ;Jcc指令只有相对寻址方式,不支持间接寻址方式
第 17 页 共 29 页
3.10 OPR1是一个常量,问下列语句中两个AND操作有什么区别?
AND AL,OPR1 AND 0feh
前者为“与”操作硬指令助记符,可汇编成机器代码。 后者为逻辑运算符,在汇编时进行“与”运算,产生具体数值。 3.11给出下列语句中,指令立即数(数值表达式)的值 注:对于逻辑运算,有关操作数可化为二进制数。 (1)mov al,23h AND 45h OR 67h ; 67h (2)mov ax,1234h/16 + 1Oh ; 133h (3)mov ax,NOT(65535 XOR 1234h) ; 1234h (4)mov al, LOW 1234h OR HIGH 5678h ; 76h (5)mov ax,23h SHL 4 ; 0234h (6)mov ax, 1234h SHR 6 ; 0048h (7)mov al,’a’ AND (NOT(’a’-’A’)) ; 41h (8)mov al,’H’ OR 00100000b ; 68h (9)mov ax,(76543 LT 32768) XOR 7654h ; 7654h 3.12; 为第2章例题2.52定义变量count、block、dplus和dminus。
假设block开始的数据块有32个字节数据:16个正数+100 (64h),16个负数 -48 (0doh) 分别连续分布:
block db 16 dup(100),16 dup(-48) ;也可以是任意字节数据,随意分布。 dplus db 32 dup(?) ;为正数预留存储空间 dminus db 32 dup(?) ;为负数预留存储空间 count equ 32 ;字节数
3.13、为第2章例题2.53定义相应变量,并形成一个完整的汇编语言程序。 3.14、画图说明下列语句分配的存储空间及初始化的数据值:
(1) byte_var DB ’ABC’,10,10h,’EF’,3 DUP(-1,?,3 DUP(4)) (2) word_var DW 10h,-5,’EF’,3 DUP(?) 3.15; 请设置一个数据段mydataseg,按照如下要求定义变量:
(1) my1b为字符串变量:Personal Computer (2) my2b为用十进制数表示的字节变量:20 (3) my3b为用十六进制数表示的字节变量:20 (4) my4b为用二进制数表示的字节变量:20 (5) my5w为20个未赋值的字变量 (6) my6c为100的常量
(7) my7c表示字符串:Personal Computer
第 18 页 共 29 页
mydataseg segment
my1b db ‘Personal Computer’ my2b db 20
my3b db 14h ;20h my4b db 00010100b my5w dw 20 dup(?)
my6c equ 100 ;my6c = 100 my7c equ
3.16、分析例题3.2的数据段,并上机观察数据的存储形式。
3.17、修改例题3.3,现在用字定义伪指令dw、字串传送指令movsw和字符串显示9号功能调用实现。
3.18; 变量和标号有什么属性?
段地址:表示标号所在代码段的段地址; 偏移地址:表示标号所在代码段的段内偏移地址;
类型:引用该标号时,表示它所在同一个段near类型,还是另外一个段far类型。 3.19; 设在某个程序中有如下片段,请写出每条传送指令执行后寄存器AX的内容: mydata segment ORG lO0h VARW DW l234H,5678H VARB DB 3,4 AGLIN 4 VARD DD 12345678H EVEN BUFF DB 10 DUP(?) MESS DB ’HELLO’
MOV AX, OFFSET VARB + OFFSET MESS ;AX = 4+16H = 1AH MOV AX, TYFE TYPE BUFF+TYPE MESS+TYPE VARD;AX = 1+1+4 = 06H MOV AX,SIZE VARW+SIZE BUFF+SIZE MESS;AX = 4+10+5 = 19 = 13H MOV AX,LENGTH VARW + LENGTH VARD ;AX = 2+1 = 03H MOV AX,LENGTH BUFF + SIZE VARW ;AX = 10+4 =14 = 0EH MOV AX,TYPE BIGIN ;AX = FF02H (近) MOV AX,OFFSET BEGIN ;AX = 1BH
3.20、利用简化段定义格式,必须具有.MODEL语句。MASM定义了哪7种存储模式,TINY和SMALL模式创建什么类型(EXE或COM)程序?设计32位程序应该采用什么模式?
第 19 页 共 29 页
3.21、源程序中如何指明执行的起始点?源程序应该采用哪个DOS功能调用,实现程序返回DOS?
3.22; 在SMALL存储模式下,简化段定义格式的代码段、数据段和堆栈段的缺省段名、定位、组
合以及类别属性分别是什么?
段定义伪指令 段名 定位 组合 类别 组名 .CODE _TEXT WORD PUBLIC ’CODE’ .DATA _DATA WORD PUBLIC ’DATA’ DGROUP .STACK STACK PARA STACK ’STACK’ DGROUP
3.23、如何用指令代码代替.startup和.exit指令,使得例题3.1a能够在MASM 5.x下汇编通过?
3.24、创建一个COM程序完成例题3.1的功能。
3.25; 按下面要求写一个简化段定义格式的源程序 < …… 此处隐藏:2456字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [互联网资料]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 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




