好文档 - 专业文书写作范文服务资料分享网站

钱晓捷-汇编语言程序设计课后习题(作业新)

天下 分享 时间: 加入收藏 我要投稿 点赞

精品文档

jz next ;jnz next mov ax,-1 ;mov ax,0 jmp again next: mov ax,0 ;mov ax,0ffffh again: ...

(4)有两个64位数值,按“小端方式”存放在两个缓冲区buffer1和buffer2,编写程序段完成buffer1-buffer2功能。

(5)假设从B800h:0开始存放有100个16位无符号数,编程求他们的和,并把32位的和保存在DX.AX中。

(6)已知字符串string 包含有32KB内容,将其中的'$'符号替换成空格。

答1:;不使用串操作指令,更好 mov si,offset string mov cx,8000h

again: cmp byte ptr [si], ‘$’ ;‘$’ =24h jnz next

mov byte ptr [si], ‘ ’ ;‘ ’=20h next: inc si loop again ;dec cx ;jnz again 答2:;使用串操作指令 mov di,offset string mov al,’$’ mov cx,8000h cld

again: scasb jnz next

mov byte ptr es : [di-1], ‘ ’ next: loop again

(7)有一个100字节元素的数组,其首地址为array,将每个元素减1(不考虑溢出)存于原处。

答1: mov si,offset array

mov cx,100

again: dec byte ptr [si]

inc si

loop again

答2:mov si,offset array

mov di,si mov ax,ds mov es,ax mov cx,100 cld

again: lodsb

11欢迎下载

精品文档

dec al stosb

loop again

(8)统计以'$'结尾的字符串srting 的字符个数。

2.27对以下要求,分别给出3种方法,每种方法只用一条指令。 (1)使CF=0 (2)使AX=0

(3)使AX=0和CF=0

2.28参照本习题的示意图,分析调用序列,画出每次调用及返回时的堆栈状态

其中CALL前是该指令所在的逻辑地址;另外,段内直接调用指令的机器代码的字节数为3,段间直接调用指令则为5字节。

2.29已知AX,BX存放的是4位压缩BCD表示的十进制数,请说明如下子程序的功能和出口参数。 Add al,bl Daa

Xchg al,ah Adc al,bh Daa

Xchg al,ah Ret

答:压缩BCD码加法: AX←AX+BX

出口参数:

12欢迎下载

精品文档

AX=BCD码和

2.30 ADD指令是用于除法指令之前,进行压缩BCD码调整的。实际上,处理器的调整过程是:AL<-AH×10+AL,AH<-0。如果指令系统没有ADD指令,请用一个子程序完成这个调整工作。

2.31 解释如下有关中断的概念: (1)内部中断和外部中断 (2)单步中断和断点中断 (3)除法错中断和溢出中断 (4)中断向量号和中断向量表

2.32 试比较INT n和段间 CALL指令,IRET和段间RET指令的功能。 2.33 什么是系统功能调用?汇编语言中,它的一般格式是怎样的?

2.34 补充例2.40,当有溢出时显示\,无溢出显示\。

补充例2.42,显示\的个数,注意首先将个数转换为ASCII码。 okmsg db ‘OK’, ‘$’

errmsg db ‘Error ! Overflow !’, ‘$’ …

mov ax,X sub ax,Y jo overflow

mov dx,offset okmsg jmp next

overflow: mov dx,errmsg next: mov ah,9 int 21h

2.36 先提示输入数字\然后在下一行显示输入的数字,

结束;如果不是键入了0到9数字,就提示错误\,继续等待输入数字。

2.37 从键盘输入一个字符串(不超过255)个,将其中的小写字母转换成大写

字母,然后按原来的顺序在屏幕上显示。

2.38 指令对状态标志的作用可以分成多中情况,例如无影响、无定义、按结果

影响、特别说明的影响等,你能区别这些情况么?分别用具体的指令来说明。

2.39 8086指令系统分成哪6个功能组?各组主要包含什么指令?举例说明。 2.40总结8086指令系统所采用的各种寻址方式,包括一般的数据寻址、外设数

据寻址、堆栈数据寻址、串操作数据寻址、转移指令目的地址的寻址等,并举例说明。

13欢迎下载

精品文档

习题3

3.1 伪指令语句与硬件指令语句的本质区别是什么?伪指令有什么主要作用? 3.2 什么是标识符?汇编程序中标识符怎样组成?

3.3 什么是保留字?汇编语言的保留字有哪些类型?并举例说明。 3.4 汇编语句有哪两种?每个语句由哪四部分组成?

3.5 汇编语言程序的开发有哪4个步骤?分别利用什么程序完成、产生什么输

出文件?

答:⒈ 编辑 文本编辑程序 汇编语言源程序.asm

⒉ 汇编 汇编程序 目标模块文件.obj

⒊ 连接 连接程序 可执行文件.exe或.com ⒋ 调试 调试程序 应用程序

3.6 将第2章习题2.36采用简化段定义格式编写成一个完整的源程序。 3.7 将第2章习题2.37采用完整段定义格式编写成一个完整的源程序。 3.8 区分下列概念:

(1)变量和标号(2)数值表达式和地址表达式(3)符号常量和字符串常量 3.9 假设myword是一个字变量,mybyte1和mybyte2是2字节变量,指出下列

语句中的错误原因 答:(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指令只有相对寻址方式,不支持间接寻址方式

3.10 OPR1是一个常量,问下列语句中两个AND操作有什么区别?

AND AL,OPR1 AND 0feh

3.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'))

14欢迎下载

精品文档

(8)Mov al,'H' OR 00100000b

(9)Mov ax,(76543 LT 32768) XOR 7654h

3.12 为第2章立体2.54定义变量count、block、dplus和dminus。

3.13为第2章例题2.55定义相应的变量,并形成一个完整的汇编语言程序。 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)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 Conputer (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 20

my3b db 14h ;20h my4b db 00010100b my5w dw 20 dup(?)

my6c equ 100 ;my6c = 100 my7c equ mydataseg ends

3.16分析例题3.2的数据段,并上机观察数据的储存形式。

3.17修改例题3.3,现在用字定义伪指令dw,字符串传送指令movsw和字符串显示9号功能调用实现

3.18变量和标号有什么属性?

3.19 设在某个程序中有如下片段,请写出每条传送指令执行后寄存器AX的内

15欢迎下载

钱晓捷-汇编语言程序设计课后习题(作业新)

精品文档jznext;jnznextmovax,-1;movax,0jmpagainnext:movax,0;movax,0ffffhagain:...(4)有两个64位数值,按“小端方式”存放在两个缓冲区buffer1和buffer2,编写程序段完成buffer1-buffer2功能。(5)假设从B80
推荐度:
点击下载文档文档为doc格式
3pg581fmgx8xzko02xoc4ddq3430jm00yca
领取福利

微信扫码领取福利

微信扫码分享