一、设X、Y、Z、V均为16位有符号数,分别装在X、Y、Z、V存储单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处。
MOV AX, X
IMUL Y
MOV CX ,AX
MOV BX,DX
MOV AX ,Z
CWD
ADD CX,AX
ADC BX,DX
SUB CX,540
SBB BX,0
MOV AX,V
CWD
SUB AX,CX
SBB DX,BX
IDIV X
二、请指出下列指令的错误所在,并说明原因。
(1) MOV CX,DL
(2) XCHG [SI],3
(3) POP CS
(4) MOV IP,AX
(5) SUB [SI],[DI]
(6) PUSH DH
(7) OR BL,DX
(8) AND AX,DS
(9) MUL 16
(10) AND 7EEEH,AX
(11) DIV 256
(12) MOV ES,1243H
(13) MOV CS,AX
(14) SUB DL,CF
(15) ADC AX,
(16) MOV
三、假设AX 和SI存入的是有符号数,DX,DI存放的是无符号数,请用比较指令和条件转移指令实现以下判断:
(1) 若(DX)>(DI) ,转到ABOVE 执行
(2) 若(AX)>(SI), 转到GREATER执行
(3) 若(CX)=0,转到ZERO执行
(4) 若(AX)-(SI) ,产生溢出,转到OVERFLOW执行
(5) 若(SI)<=(AX),转到LESS_EQ执行
(6) 若(DI)<=(DX),转到BELOW_EQ执行
一、已知(AX)=
(1) ADD AX,08FFH
(2) INC AX
(3) SUB AX,4455H
(4) AND AX,0FFFH
(5) OR AX,0101H
(6) SAR AX, 1
(7) ROR AX , 1
(8) ADC AX, 5
二、已知(AX)=2040h,(DX)=380h,端口(PORT)=(80H)=1FH,(PORT+1)=45H,指出执行下列指令后,结果是什么?
(1) OUT
(2) OUT DX,AX
(3) IN
(4) IN AL,80H
(5) OUT PORT+1,
(6) IN AL,PORT+1
三、改正下列程序的错误:
1、 下面是将内存一字节数据高4位和低4位互换并放回原位置的程序 ,找出错误并改正。
DATA SEGMENT
DD1 DB 23H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE ,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
LEA SI ,OFFSET DD1
MOV AL,[SI]
MOV CL,4
RCR AL,CL
MOV [SI],AL
MOV AH,4CH
INT 21H
CODE ENDS
END START
2、 下列的程序是将内存单元一字节数据乘以10放回单元的程序,找出错误并改正。
DATA SEGMENT
DA DW 34
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV SI,OFFSET DA
MOV AL,[SI]
MUL 10
MOV [SI],AX
MOV AH,4CH
INT 21H
CODE ENDS
END START
四、程序分析:
1、 执行完程序后,回答指定的问题
MOV AX,0
MOV BX,2
MOV CX,50
LP: ADD AX,BX
ADD BX,2
问:(1)该程序的功能是:
(2)程序执行完成后,(AX)=?
2、 执行完程序后,回答指定的问题。
BLOCK DB 20H,1FH,08H,81H,0FFH……
RESULT DB ?
START: LEA SI ,BLOCK
MOV CH,0
MOV CL,[SI]
DEC CX
INC SI
MOV SL,[SI]
LOP1: CMP AL,[SI+1]
JLE NEXT
MOV AL,[SI+1]
NEXT : INC SI
MOV RESULT ,
HLT
问:(1)该程序的功能是:
(2)该程序的循环次数是:
五、已知从DS:2200H,ES:3200H单元起分别存放20个ASCII的字符,找出两个字符串中第一个不同字符位置(段内偏地址),并放入DS:
六、试编程实现将键盘输入的小写字母用大写字母显示出来