有答案的汇编习题

29. 结构数据类型如何说明、结构变量如何定义、结构字段如何应用?(3.4)

30. 记录数据类型如何说明,记录变量如何定义,WIDTH和MASK操作符是什么作用?(3.4)

第四章 汇编语言程序设计 习题

1. 已知两个八位无符号数x和y,分别存放在BUF和BUF+1单元中,且x>y。请编程序计算x-y,结果

存回BUF单元。(4.1)

2. 已知DAT单元有一数x。现要求编程将x的低四位变为1010,最高位D7置为1,其它三位不变。

(4.1)

3. 已知有两个压缩BCD数BCD1和BCD2,其在内存存放形式为:

(BCD1)=34 (BCD1+1)=18 (BCD2)=89 (BCD2+1)=27

高位字节为高位数。要求编程将BCD1和BCD2相加,结果送BCD3开始的存储单元。(4.1) 4. DAT单元的内容拆成高、低各四位,然后分别存于DAT+1及DAT+2的低四位。(4.1)

5. 内存某一缓冲区中存放着十个单元的BCD码,每个单元中放两位BCD码(压缩BCD码)。要求把

它们分别转换为ASCII码。高位BCD码转换后放在高地址单元。(4.1)

6. 三个无符号数x,y,z,均小于等于255,分别存于DATA,DATA+1和DATA+2单元中。现要找出三个数

中数值大小居中的一个,并将其存入BUF单元中。(4.2)

7. 已知在DAT单元内有一带符号数x。试编一程序,根据x的具体情况进行如下处理:

若x为正奇数,则将x与BUF单元内容相加; 若x为正偶数,则将x与BUF单元内容相\与\; 若x为负奇数,则将x与BUF单元内容相\或\; 若x为负偶数,则将x与BUF单元内容相\异或\。

以上四种情况运算的结果都送回BUF单元。零作为正偶数处理。(4.2)

8. 累加器AL中有一字符,用ASCII码表示。当其为\时,程序转移到LPA处;如为\则转移到

LPB处;如为\则转移到LPE处,否则,均转向LPN处。(4.2) 9. 在DATA单元有一个二进制数x,要求编程完成运算:(4.2)

x+1 x>0 y=

x

x=0

x-1 x<0

10. 数组A和B,各有20个数据,它们均已按升序排放。现要求将这两个数组合并为一个数组C,且

要求其数据也按升序排放,试编程实现。(4.2)

11. 编一程序,要求将BUF单元开始的100个存储单元全部清零。若不知所清单元长度,只知以0FFH

作为结束标志,又该如何处理?(4.3)

12. 有一数据块,长度为100字节,存放于DAT开始的存储单元。要求将此数据块中的负数的个数统

计出来,并将统计结果存入MNUM单元中。(4.3)

13. 有一个由八位数组成的数列,长度为三字节,存放地址始于DAT单元。求此数列的算术和并存于

BUF和BUF+1单元。已知数列之和为十六位数。(4.3)

14. 从NUMB单元起有100个数,其值在0~100之间。试编程实现以下数据统计:

(1) 有多少个大于等于60的数?统计结果存于COUNT单元。 (2) 有多少个为100的数?统计结果存于COUNT+1单元。 (3) 有多少个为0的数?统计结果存于 COUNT+2单元。

(4) 当小于60的数超过十个,则结束统计,同时置COUNT单元为0FFH。(4.3)

15. 将ADAT单元起的100个字节数据,传送到BDAT开始的单元中去。已知数据区无覆盖问题,要求

用三种方法实现。(4.3)

16. 将BUF单元开始的50个字节数,区分出奇、偶数。将奇数在前,偶数在后,仍存回原数据区。(4.3)

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@)