150 likes | 288 Views
习题课. —— 数据处理部分. 1 选择题. 1. 十进制数运算调整指令 AAS 可以紧跟在()之后 : A.SBB B.DEC C.CMP D.NEG 2. 在多字节加减运算时,特别要注意标志( B )对运算的影响 : A. AF B.CF C. SF D.OF 3. 设 VAR 是数据段中定义的字节变量,指令 MUL VAR 乘积存放在() A. AX B.BX C. CX D.DX. 4. 执行下面指令序列后,结果是() MOV AL , 82H CBW A.AX=0FF82H B.AX=8082H
E N D
习题课 ——数据处理部分
1 选择题 1.十进制数运算调整指令AAS可以紧跟在()之后: A.SBBB.DEC C.CMPD.NEG 2. 在多字节加减运算时,特别要注意标志(B)对运算的影响: A. AFB.CF C. SFD.OF 3.设VAR是数据段中定义的字节变量,指令MUL VAR乘积存放在() A. AXB.BX C. CXD.DX
4.执行下面指令序列后,结果是() MOV AL,82H CBW A.AX=0FF82HB.AX=8082H C.AX=0082HD.AX=0F82H 5.在串指令REPMOVSB中,重复次数一定放在()寄存器中。 A.AXB.BX C.CXD.DX 6.下面指令中,合理而有意义的指令是() A.REP LODSBB.REP SCASB C.REP CMPSBD.REP MOVSB
7.串操作指令中,目标串操作数的段地址一定在(D)寄存器中。7.串操作指令中,目标串操作数的段地址一定在(D)寄存器中。 A.CSB.SS C.DSD.ES 8.在程序状态字寄存器中,当方向标志DF位为0时,每次操作后使变址寄存器SI和DI(B) A.减量 B.增量 C.保持不变 D.地址减1
2 判断题 1.所有串操作指令的目标串的段地址均取自于段寄存器DS。() 2.串操作指令一般用CX存放长度。() 3.指令AAA必须紧跟在加法指令之后使用。()
现有下列数据段: DATA SEGMENT S1 DB ‘ABCDEFGHIJKL’ COUNT EQU $-S1 BUF DB COUNT DUP(0) DATA ENDS 下面程序段是实现把S1中所有字符逆向传送到BUF缓冲区(即S1中第一个字符送到BUF的最后一个单元,S1中最后一个字符送到BUF的第一个单元)。试把程序中所空缺的2条指令填上。 MOV SI,OFFSET BUF-1 MOV DI,OFFSET BUF MOV CX,COUNT (1)________________ L1: MOVSB (2)________________ LOOP L1 参考答案: (1)CLD (2)SUB SI,2 或 (1)STD (2)ADD DI,2
1.定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果。(要求用字符串指令)参考答案:1.定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果。(要求用字符串指令)参考答案: DATA SEGMENT PATTERN DB 23H,24H,25H,26H DISPLAY DB 80 DUP(‘’),‘$’ DATE ENDS
CODE SEGMENT ┇ CLD LEA SI,PATTERN LEA DI,DISPLAY MOV CX,80 REP MOVSB MOV AH,09H LEA DX,DISPLAY INT 21H RET CODE ENDS
编写一程序段,计算x2+y-5多项式的值。 说明:多项式存于AX中,x, y是无符号数。 数据说明:x DB 0CH y DB 06H 答案: MOV AL,x MUL x ADD AL,y ADC AH,0 SUB AX,5
设X,Y,Z,W存放16位带符号数,编程计算X*Y-Z的值并送到W设X,Y,Z,W存放16位带符号数,编程计算X*Y-Z的值并送到W 要求:写出有关指令语句。 参考答案: MOV AX,X IMUL Y SUB AX,Z SBB DX,0 MOV W,AX
1.已知(AL)=0FFH, (BL)=10H。执行MUL BL则 (AH)=() (AL)=() 2.执行下列指令语句,把执行结果填在空格中。 已知(DS)=5000H,(BX)=0100H,(DI)=0002H,(50100H)=45H,(50101H)=68H,(50102H)=0A1H,(50103H)=14H 先执行MOV AX,[100H] 则(AX)=( ); 再执行ADD AX,[BX+DI] 则(AX)=(),CF=(),OF=()
试编制一个计算无符号数X的Y次幂的程序。 • p123
表的插入和删除 • 什么是表? • 例1:在一个字符串STRING的某个位置插入一个字符。 DATA SEGMENT STRING DB ‘abcdedfghij', 5 DUP(0) COUNT EQU $ - STRING DATA SEGMENT • 例2:在一个字符串STRING的某个位置删除一个字符。
表的查找和排序 例1:冒泡排序的实现 例2:折半查找的实现 大家思考,参考p148
代码转换 • 例1:-