第2此作业情况汇总。
表扬的同学:1班:康旭;5班:高阳;,张妙,郭德,刘美洋;6班的林诩凯。
出错:sal al,1(ax=00bbh)结果为al=76h,而不是f6h。
解答:1)算术左移无法保证符号位不发生改变,溢出了。
2)注意:al作为独立使用的寄存器,它的左移不影响ah寄存器。
3)逻辑移位,高4位已补0,无需通过and al 0fh实现清0。不宜采用算术移位。
问题:语句第2行,因不满足条件而未执行。但done语句标号后的指令在程序的最后仍会执行。结果为7676h。
3.67 问题较多。
试写出一个程序段,用cl中的数据除bl中的数据,然后将结果乘2,最后的结果是存入dx寄存器中的16位数。
问题:mov ax,bl(或mov ax,cl)
1)cl是除数,有的同学把bl当成了除数。
2)数据类型不匹配:mov ax, bl(被除数默认在ax中)。
3)cbw的误用。
4)乘数不能是立即数。
5)将所得的商直接算术(逻辑)左移1位,因商保存在al中。
mov al,bl
mov ah,0 ;或 and ax,00ffh 或:cbw(有符号除法)
div cl(或idiv cl ;和cbw连用。
mov cl,2 ;sal ax,1(×)因ah中放的是余数)
mul cl (或:mov ah,0 shl ax,1或imul cl
mov dx,ax
3.79 用串操作指令设计实现如下功能的程序段,先将100个数从6180h处移到2000h处;再从中检索出等于al中字符的单元,并将此单元值转换成空格符。
1)完成100个数的传送问题不大,只是部分同学忘了用cld(或std)指令指定串操作的方向。
2)第2问问题较多:① 题目的意思是修改目标串;因此,不应对[si]进行操作;scasb指令是对[di]单元操作的。
目标串中等于al中字符的单元,可能不止一个,因此,简单地用 repne scasb不合适,碰到第一个符合要求的字符,就不再检索了。
串传送结束后,si和di均已改变,若直接按现行[di]检索,是不对的。
有同学直接用lea di,2000h获取目标串的首地址,是不可以的。2000h为立即数。实际上,在目前版本的汇编程序中,lea di,[2000h]都被认为是不合法的。
参考程序段如下:
cldmov cx,100
mov si,6180h
mov di,2000h
rep movsb
dec di
std ;也可直接用mov di,2000h
mov cx,100
scan:scasb
jnz next
inc di
mov byte ptr [di],‘或20h)
dec di
next:loop scan
mov ah,4ch ;终止程序,返回dos
int 21h
第2次作业
1.操作系统将os划分为若干层次,再将os的不同功能分别设置在不同的层次中。通常将一些与硬件紧密相关 各种常用设备的驱动程序以及频率较高的模块 如始终管理 进程调度和许多模块所公用的一些基本操作 都安排在紧靠硬件的软件层次中,将它们常驻内存,即os内核。支撑功能 中断处理 时钟管理 原语操作。资源管...
作业第2次
1 测试需求管理不包含 a 产品需求转换为测试需求 b 通过需求树定义被测软件所有需求 c 自动生成统计图表 d 定义测试目标和策略。2 测试需求管理包含 a 定义测试目标和策略 b 确定每个功能点的测试方法 c 自动生成统计图表 d 运行自动化测试。3 缺陷跟踪不包含 a 确定每个功能点的测试方法...
第2次作业
第二次作业。2015年8月22日。同学们 你们好!完成此次作业首先需要大家对教材第4至第6章内容进行学习,之后才能作以下作业。一 简答题。1 简述收入分配过程的基本内容及其核算的账户组成。2 结合收入初次分配的各个流量解释收入分配账户中 收入形成账户 和 原始收入分配账户 之间的关系。3 根据 年国...