第四章课后作业(6—27)
6.试按下列要求分别编制程序段。
(1)把标志寄存器中符号位SF置“1”。
(2)寄存器AL中高、低四位互换。
(3)由寄存器AX、BX组成一个32位带符号数(AX中存放高16位),试求这个数的负数。
(4)现有三个字节存储单元A、B、C,在不使用ADD和ADC指令的情况下,实现(A)+(B。
(5)用一条指令把CX中的整数转变为奇数(如原来已是奇数,则CX中数据不变,如原来是偶数,则(CX)+1 形成奇数)。
答:
(1) LAHF
OR AH,80H
SAHF
(2) MOV CL,4
ROL AL,CL
(3) MOV CX,0
NEG BX
JC CHG
JMP GO
CHG: MOV CX,1
GO: NEG AX
SUB AX,CX
(4) MOV CL,A
MOV AL,B
MOV X,AL
CHECK:INC X
DEC CL
JNZ CHECK
(5) OR CX,0001H
7.试给出下列各指令的机器目标代码。
(1)MOV BL,12H [SI]
(2)MOV 12H [SI],BL
(3)SAL DX,1
(4)AND 0ABH [BP] [DI],1234H