2022年新版汇编语言程序设计钱晓捷第章习题答 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年新版汇编语言程序设计钱晓捷第章习题答 .pdf》由会员分享,可在线阅读,更多相关《2022年新版汇编语言程序设计钱晓捷第章习题答 .pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 3 章 汇编语言程序格式习题 3.1 伪指令语句与硬指令语句的本质区别是什么?伪指令有什么主要作用?解答伪指令语句与硬指令语句的本质区别是能不能产生CPU 动作;伪指令的作用是完成对如存储模式、主存变量 、子程序 、宏及段定义等很多不产生CPU 动作的说明,并在程序执行前由汇编程序完成处理。习题 3.2 什么是标识符,汇编程序中标识符怎样组成?解答为了某种需要,每种程序语言都规定了在程序里如何描述名字,程序语言的名字通常被称为标识符;汇编语言中的标识符一般最多由31 个字母、数字及规定的特殊符号(如-,?, )组成,不能以数字开头。习题 3.3 什么是保留字,汇编语言的保留字有哪些类型,并
2、举例说明。解答保留字是在每种语言中规定了有特殊意义和功能的不允许再做其它用处的字符串;汇编语言的保留字主要有硬指令助记、伪指令助记符、运算符、寄存器名以及预定义符号等。汇编语言对大小写不敏感。如定义字节数和字符串的DB 就是伪指令助记符。习题 3.4 汇编语句有哪两种,每个语句由哪4 个部分组成?解答汇编语句有执行性语句和说明性语句;执行性语句由标号、硬指令助记符、操作数和注释四部分组成;说明性语句由名字、伪指令助记符、参数和注释四部分组成习题 3.5 汇编语言程序的开发有哪4 个步骤,分别利用什么程序完成、产生什么输出文件。解答编辑文本编辑程序汇编语言源程序 .asm 汇编汇编程序目标模块文
3、件 .obj 连接连接程序可执行文件 .exe 或 .com 调试调试程序应用程序习题 3.6 将第 2 章习题 2.36 采用简化段定义格式编写成一个完整的源程序。解答名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 15 页 - - - - - - - - - ;简化段定义格式 .model small ; 定义程序的存储模式(小模式) .stack ; 定义堆栈段(默认1024 个字节) .data ; 定义数据段str1 db Input Number:09 : ,
4、0dh,0ah,$ str2 db Error!,0dh,0ah,$ .cade ; 定义代码段 .startup ; 说明程序的起始点,建立ds,ss 的内容。mov ah,09h ; 显示 str1 字符串mov dx,offset str1 int 21h getkey: mov ah,1 ; 调用 DOS 功能int 21h cmp al,0 jb error ; 小于 0,出错处理cmp al,9 ja error ; 大于 9,出错处理mov ah,02h ; 调用 DOS 显示字符功能,显示该数字mov dl,al int 21h .exit 0 ; 终止程序执行,返回DOS e
5、rror: mov ah,09h ; 出错,调用DOS 功能显示 str2 字符串mov dx,offset str2 int 21h jmp getkey ; 返回按键end ; 汇编结束习题 3.7 将第 2 章习题 2.37 采用完整段定义格式编写成一个完整的源程序。解答 ;xt307.asm stack segment 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 15 页 - - - - - - - - - dw 512 dup(?) stack ends d
6、ata 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 mov dx,offset array2 ; 回车换行mov ah,09h int 21h mov bx,offset array1 again: mov al,bx cmp al
7、,$ 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 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 15 页 - - - - - - - - - done: mov dx,offset array1 mov ah,09h int 21h
8、 mov ax,4c00h int 21h code ends end start 习题 3.8 区分下列概念:(1)变量和标号(2)数值表达式和地址表达式(3)符号常量和字符串常量解答(1)变量是在程序运行过程中,其值可以被改变的量;标号是由用户自定义的标识符,指向存储单元,表示其存储内容的逻辑地址。(2)数值表达式一般是由运算符连接的各种常数所构成的表达式,地址表达式是由名字、标号以及利用各种的操作符形成的表达式。(3)在程序中,为了使常量更便于使用和阅读,经常将一些常量用常量定义语句定义为符号常量,被一对双引号括起来的若干个字符组成的字符序列被称为字符串常量。习题 3.9假设 mywor
9、d 是一个字变量, mybyte1 和 mybyte2 是两个字节变量,指出下列语句中的错误原因。(1) mov byte ptr bx,1000 (2) mov bx,offset mywordsi (3) cmp mybyte1,mybyte2 (4) mov al,mybyte1+mybyte2 (5) sub al,myword (6) jnz myword 解答(1)1000 超出了一个字节范围(2)寄存器的值只有程序执行时才能确定,而offset 是汇编过程计算的偏移地址,故无法确定,改为 lea bx,mywordsi (3)两个都是存储单元,指令不允许名师资料总结 - - -精
10、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 15 页 - - - - - - - - - (4)变量值只有执行时才确定,汇编过程不能计算(5)字节量 AL 与字量 myword ,类型不匹配(6)Jcc 指令只有相对寻址方式,不支持间接寻址方式习题 3.10 OPR1 是一个常量,问下列语句中两个AND 操作有什么区别?AND AL,OPR1 AND 0feh 解答前者为 “ 与” 操作硬指令助记符,可汇编成机器代码。后者为逻辑运算符,在汇编时进行“ 与” 运算,产生具体数值。习题 3.11
11、给出下列语句中,指令立即数(数值表达式)的值:(1) mov al,23h AND 45h OR 67h (2) mov ax,1234h/16+10h (3) mov ax,NOT(65535 XOR 1234h) (4) mov al,LOW 1234h OR HIGH 5678h (5) mov ax,23h SHL 4 (6) mov ax,1234h SHR 6 (7) mov al,?a? AND (NOT(?a?-?A?)(8) mov al,?H? OR 00100000b (9) mov ax,(76543 LT 32768) XOR 7654h 解答注:对于逻辑运算,有关操
12、作数可化为二进制数。(1)67h (2)133h (3)1234h (4)76h (5)0234h (6)0048h (7)41h (8)68h (9)7654h 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 15 页 - - - - - - - - - 习题 3.12 为第 2 章例题 2.54 定义变量 count 、block 、dplus 和 dminus 。解答假设 block 开始的数据块有32 个字节数据: 16 个正数 +100 (64h) 、16 个负
13、数-48 (0d0h )分别连续分布:block db 16 dup (100),16 dup (-48 ) ;也可以是任意字节数据,随意分布。dplus db 32 dup(?) ;为正数预留存储空间dminus db 32 dup(?) ;为负数预留存储空间count equ 32 ;字节数习题 3.13 为第 2 章例题 2.55 定义相应变量,并形成一个完整的汇编语言程序。解答;lt239b.asm .model small .stack .data string1 db good morning ! ;两字符串可相同或不同,但字符数要求相同。string2 db Good morni
14、ng ! result db ? ;预留结果字节count = 14 ;字符数 .code .startup mov ax,ds ;所有数据在同一个段,所以使es=ds mov es,ax mov si,offset string1 mov di,offset string2 mov cx,count again: cmpsb jnz unmat dec cx jnz again 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 15 页 - - - - - - - - -
15、 mov al,0 jmp output unmat: mov al,0ffh output :mov result, al .exit0 end 习题 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(?)解答(1)从低地址开始,依次是(十六进制表达):41 42 43 0a 10 45 46 ff 04 04 04 ff 04 04 04 ff 04 04 04 (2)从低地址开始,依次是(十六进制表达):
16、10 00 FB FF 46 45 习题 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 解答mydataseg segment my1b db ,Personal Computer?my2b db 2
17、0 my3b db 14h ;20h my4b db 00010100b my5w dw 20 dup(?) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 15 页 - - - - - - - - - my6c equ 100 ;my6c = 100 my7c equ mydataseg ends 习题 3.16 分析例题3.2 的数据段,并上机观察数据的存储形式。解答以字节为单位从低地址向高地址依次是:16 00 12 FFH FFH FFH FFH 00 00 00
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年新版汇编语言程序设计钱晓捷第章习题答 2022 新版 汇编语言 程序设计 钱晓捷第章 习题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内