6.6 习题
6.6 习题
6.1、简述ASSUME伪指令的作用,用该语句说明的段寄存器不用对其赋段地址的初值? |
6.2、用二种定义方法堆栈段,并给出相应的初始化语句或说明。 |
6.3、把下列C语句的语句改写成功能相同的汇编语言程序片段(其中:变量都为整型变量)。 |
1)、h = (key & 0XFF00) >> 8; |
6.4、把下列C语言的语句改写成等价的汇编语言程序段(不考虑运算过程中的溢出)。 |
If (a<1 || b/4 > 10 && c%8==5) { |
6.5、假设内存单元中有三个字a、b和c,编写一个程序,它可判断它们能否构成一个三角形,若能,CF为1,否则,CF为0。 |
6.6、假设有三个无符号字存放在以Buffer为开始的缓冲区中,编写一个程序把它们从低到高排序好。 |
6.7、编写一个程序,它把一位十六进制数转化成相应的数字字符或大写字母。 |
6.8、编写一个程序,它把一个合法的十六字符转化成相应的数值。 |
6.9、编写一个程序,它可统计32数DX:AX中二进制位是1的位数。 |
6.10、编写一个程序,它把CH和CL中的二进制位依次交叉存入AX中。 |
6.11、编写一个程序,求出从内存单元1000:0000开始的1024个字的32位累加和,并把该值存入程序中的变量Data中。 |
6.12、假设从变量Buff开始存放了200个字,编写一个程序统计出其正数、0和负数的个数,并把它们分别存入N1、N2和N3中。 |
6.13、用双重循环把下三角乘法表存入从product开始的45个字节中。 |
6.14、表示源程序结束的伪指令是什么?在其后所编写的指令在被汇编吗? |
6.15、汇编语言程序一定会从代码段的第一条指令开始执行吗?如果不是,如何指定程序的入口地址? |
6.16、编写一个程序,它把字符串String两端的空格删除(字符串以0结束)。 |
6.17、编写一个程序,它把字符串String中的数字字符删除掉(字符串以0结束)。 |
6.18、编写一个程序,它把AX的值以二进制字符串的形式存放在以buff开始的缓冲区中。 |
6.19、假设有一个以Data为首地址的字缓冲区,其缓冲区的大小在第一个字中,试编写一个程序,求出该缓冲区数值的最大值和最小值,并分别存入DI和SI中。 |
6.20、编写一个程序片段,把32位数DX:AX向左移六位。 |