3-30 用DOS系统功能调用一个程序,能将3-17题中的结果在屏幕上显示出来
3-31 要求同3-30,但要求屏幕显示的结果是高位在左,低位在右。其格式为:RESULT:87.
3-32 用DOS系统中断调用,编写一个显示主功能菜单的汇编语言程序,设主功能菜单格式为:
* * * * MAIN MENU * * * * * 1 PROG1 * * 2 PROG2 * * 3 PROG3 * * 4 RETURN *
* * * * * * * * * * * * * * please input your seleotion
3-33 试写出80386/80486CPU执行下列指令后,AX=?BX=? (1) MOV AX,0000 (2) MOV AX,0000
MOV BX,1234H MOV BX,1234H SHLD AX,BX,8
MOV CL,0CH
SHRD AX,BX,CL
3-34 试写出80386/80486CPU执行下列指令后,标志CF=? MOV EAX,96ABDC86H BT EAX,14H
第四章 习题
4-1 汇编语言程序设计的几个步骤是: 4-2计算下列表达式的值(设A1=50,B1=20,G1=2)。
1 A1*100+B1
2 A1 MOD G1 + B1 3 (A1+2)*B1-2 4 B1/3 MOD 5
5 (A1+3)*(B1 MOD G1) 6 A1 GE G1
7 B1 AND 7
8 B1 SHL 2 + G1 SGR 1
答:
1. A1*100+B1 = 5020
2. A1 MOD G1 + B1 = 20 3. (A1+2)* B1 – 2 = 1038 4. B1/3 MOD 5 = 1
5. (A1+3)*(B1 MOD G1)= 0
6. A1 GE G1 = 1 7. B1 AND 7 = 4
4-3已知数据段定义如下,设该段从03000H开始:
8. B1 SHL 2 + G1 SGR 1 = 81 DESG SEGMENT
ARRAY1 DB 2 DUP (0,1,?) ARRAY2 DW 100 DUP (?) FHZ EQU 20H
ARRAY3 DB 10 DUP (0,1,4 DUP(2),5) DESG ENDS
试用分析运算符OFFSET、LENGTH、SIZE、SEG、TYPE求出ARRAY1、ARRAY2、ARRAY3的段、偏移量和类型,以及它们的LENGTH和SIZE。 答: SEG OFFSET TYPE ARRAY1 0300H 0000H 1 ARRAY2 0300H 0006H 2 ARRAY3 0300H 00CEH 1 LENGTH 2 100 10 SIZE 2 200 10
4-4试用示意图来说明下列变量在存储器中的分配情况。
VAR1 DW 9
VAR2 DW 4 DUP (?),2 CONT EQU 2
VAR3 DD CONT DUP(?)
VAR4 DB 2 DUP (?,CONT DUP(0),‘AB’) 答:上述变量在存储器中的分配情况如下图所示:
M
VAR1 VAR2
09H 00H ? ? ?
4-5 以下语句汇编后,变量CON1,CON2和CON3的内容分别是多少? N1=10 N2=5 N3=3
CON1= DB(N1 AND N2 OR N3)GE 0FH CON2= DW(N2 AND N1 XOR N3)LE 0FH CON3= DB(N1 MOD N3)LT(N2 SHR1)
4-6 设有一个已定义的数据段如下: DATA SEGMENT VAR1 DB ?.?
VAR2 DB ?.?
ADR DB VAR1,VAR2 DATA ENDS
若要使ADR+2的字单元中存放内容为“0022H”上述空白处应填入什么语句?
4-7 下述程序段执行后,寄存器CX,SI的内容是多少? ARRY DW 20 DUP(5) -
XOR AX , AX
MOV CX , LENGTH ARRY
MOV SI,SIZE ARRY –TYPE ARRY
4-8 试定义一个结构,它应包括一个学生的下列信息:姓名、学号及3门课程的成绩。然后给出3条结构预置语句,将3个学生的情况送入3个结构变量中。
4-9 试定义一条宏指令,它可以实现任一数据块的传送(假设无地址重叠),