问:(AX)=____0FFFFH____? (BX)=_______0_______?
10.、下列程序执行以后,为了是DA2字单元中的值为50H,空白处应该填什么?
ORG 34H
NUM=_________0CH_________________? DA1 DW 10H,$+20H,30H,$+40H DA2 DW DA1+NUM+10H
11、有一短程序,试写出它的结果:
MOV AL, 43H OR AL, 20H
两条程序执行完后结果:(AL)= 63H 。 12、某程序,(DS)=0F800H,(DI)=180AH,(0F980A)=0064H
MOV CL,5 SAR [DI],CL
[DI]=______3____________?
13、数据区的存储单元有多少个字节?
ADDR DB 10H DUP(2,3 DUP(2))
答:_______40H_______________。 14、设某用户程序(SP)=50H,(AX)=5678H,(DS)=1111H,如现在有两条进栈指令:
PUSH AX PUSH DS 试问两条指令执行后,(SP)=_ 4CH____? 15、有符号定义语句如下: BUFF DB 1,2,3,?123? EBUFF DB 0
L EQU EBUFF—BUFF 问 L= 6 ?
16、下面两个语句有何区别:X1 EQU 1000H 和 X2=1000H X1可重复定义,X2不可以 。 19、下列程序段执行后,BX寄存器的内容是多少? MOV CL,3 MOV BX,0B7H ROL BX,1 ROR BX,CL BX= C02DH 。
20、下列程序段执行后,BX寄存器的内容是多少?
MOV CL ,7
MOV BX,8D16H
13
SHR BX,CL
BX= 011AH 。 21、若(AL)=96H,(BL)=12H,指令MUL BL 执行后,它的值为多少?CF为何值?
AX= 0A8CH ;(CF)= 1 。
22、下列程序执行以后,为了是DA2字单元中的值为62H,空白处应该填什么?
ORG 34H
NUM=______1EF___________________? DA1 DW 12H,$+20H,30H,$+40H DA2 DW DA1+NUM+10H
23、若(AL)=36H,(BL)=24H,指令IMUL BL 执行后,它的值为多少?CF为何值?
AX= 0798H ;(CF)= 1 。 24、已知(AX)=1546H,(CX)=AC21H,CF=1
SAR AX,CL XCHG CH,CL SHL AX,CL
上述三条指令执行后,(AX)=__3000H__,CF=__0___;
25、一个有16个字的数据区,它的起始地址为70A0:DDF6,请写出这个数据区首末字单元的物理地址。
首地址: 7E7F6H H 末地址: 7E802H H
习题五
1、程序有 顺序 、 循环 、 分支 和 子程序 四种结构形式。 2、循环程序可以有两种结构形式,一种是 DO-WHILE 结构形式,另一种是 DO-UNTIL 结构形式。
3、 循环程序由三部分组成:循环初始化部分 、 循环体 、循环控制部分 。 4、 分支程序结构的特点: 各分支之间是并行的,且执行方向是向前的 。
5、 一般情况下,在程序中可设置 数据段 、 代码段 、 堆栈段 、 附加段
四个当前段。
6、下列程序完成什么工作? DATX1 DB 300 DUP(?) DATX2 DB 100 DUP(?)
. .
MOV CX,100 MOV BX,200
14
MOV SI,0 MOV DI,0
NEXT:MOV AL,DATX1[BX][SI]
MOV DATX2[DI],AL INC SI INT DI
LOOP NEXT
答: 将DATX1的后100个字节的元素对应的赋给了DATX2 。
7、用查表的方法将以为十六进制转换成它相应的ASCII码,将程序填写完整。
DATA SEGMENT · ·
HEX DB 4 ASCI DB ? DATA ENDS
· ·
BEING: MOV AX,DATA (1) MOV DS,AX (2) MOV BX,OFFSET TABLE XOR AX,AX
MOV AL,_30H___(3)_____? ADD BX,AX MOV AL,[BX]
MOV _ASCI___(4)____,AL MOV AH,4CH INT 21H COSEG ENDS
END _BEING___(5)_______ 8、编制一程序,求两个数组对应的数据之差,并把结果存入新数组SUM之中。计算一直进行到两数之差为零或数组结束。将新数组的长度存于LEN单元中。
DSEG SEGMENT
ARRAY1 DB 71,21,40,44,34,32,28,171 ARRAY2 DB 12,15,70,40,10,87,524,713 CUNT EQU $-ARRAY2 LEN DB ?
SUM DB 20H DUP(0) DSEG ENDS
15
SSEG SEGMENT PARA STACK DW 20H DUP(?) SSEG ENDS
CSEG SEGMENT
ASSUME DS: DSEG, SS: SSEG, CS:CSEG
START: MOV AX,DSEG MOV DS,AX
MOV CX,0
MOV CX,CUNT
MOV BX,-1
NOZERO: INC BX
MOV AL,ARRAY1[BX]
SUB AL,ARRAY2[BX]
MOV SUM[BX],AL LOOPNE NOZERO JE ENDO INC BL
ENDO: MOV LEN,BL
MOV AH,4CH INT 21H
CODE ENDS
END START
9、将DX寄存器中的16位数分成2组,每组8位,然后把这两组数分别放在BL和CL中。
SSEG SEGMENT PARA STACK DW 20H DUP(?) SSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG
START: MOV AX,DX MOV CL,8 SHL DX,CL MOV BL,DL AND CX,0FFH
CODE ENDS
END START 10、比较两个字符串STRING1和STRING2所含字符是否完全相同,同则显示‘MATCH’,若不同则显示‘NO MATCH’。
16