;在这,我就用我自己学的知识回答一下了,你可以参考一下思路,因为
;答案不一定能够完全确保正确,由于时间和能力有限
1.
;这题,看了很久也看不出怎么填,
;是不用CX用统计‘1’的个数啊,
;还这里IMP L1,IMP指令我没看过,只看过JMP
;如果IMP是JMP的话,那会不会出现死循环的,
2.
;这里由题中JB知应该是无符号数相比,
;所以不用考虑符号了
CMP DX,BX
JA L2
JB L1
CMP AX,CX
JA L2
3.
(1).
XOR AL,00010101B
(2).
TEST AL,00000010B
JZ EXIT
TEST AL,00001000B
JZ EXIT
TEST AL,00100000B
JZ EXIT
JMP L1
.
.
EXIT:
(3).
PUSHF
POP AX
(4).
MOV AX,DS
MOV ES,AX
MOV DI,3000H
CLD
MOV AL,0
MOV CX,50
REP STOSB
(5).
;这里DX和AX是作为一个整体来对待是吧
;也就是组成一个双字数,是吧,
MOV CX,4
L1:
SHL AX,1 ;左移一位并送CF,空位用0填充
RCL DX,1 ;左移一位用CF先填充空位,后移出送位CF
LOOP L1
;要不直接用80386+指令最快
SHLD DX,AX,4
(6).
;这里我只把DX变为正数,因为DX和AX组成双字数是吧
TEST DX,10000000B
JZ NEXT
NEG DX
NEXT:
1. 结果在DX里面。
PUSH AX
MOV BX, 16
XOR DX, DX
XOR CX, CX
next:
CMP CX, BX
JEQ done
SHR AX,CX
PUSH AX
AND AX, 1
CMP AX, 0
JE no_incr
INC DX
no_incr:
INC CX
POP AX
JMP next
done:
POP AX
2. (DX,AX) and (BX,CX)
你的问题有问题。对于双精度浮点数,如果不能用浮点数指令,则首先应该比符号,然后比指数,最后再比底数。如果可以用,应该把两个数挪到浮点数堆栈上,然后用浮点数比较指令fcmp。
3. (1). XOR AX, 0x0013
(2). AND AL, 0x002A
CMP AL, 0x002A
JEQ L1
JMP L2
(3). 应该有一条读取标志寄存器的指令。查一下手册;应该很简单。
(4). 忘了什么是串指令了。
(5). PUSH AX
AND AX, 0xF000
SHR AX, 12
SHL DX, 4
OR DX, AX
POP AX
SHL AX, 4
(6). PUSH DX
AND DX, 0x8000
CMP DX, 0
JEQ positive
POP DX
NEG DX
NEG AX
ADD AX, 1
ADC DX, 0
JMP done
positive:
POP DX
done:
1.这个题目有问题。应该是JMP。
mov cx,0
L1 TEXT AX,0FFFFH
JE L3
JNS L2
INC CX
L2 SHL AX,1
JMP L1
L3.........
2.CMP DX,BX
JA L2
JB L1
CMP AX,CX
JA L2
3.(1).XOR AL,15H
(2).MOV BL,AL
NOT BL
TEST BL,00101010B
JZ L1
(3).PUSHF
POP AX
(4).MOV CX,50
CLD
LEA DI,[3000H]
MOV AL,0
REP STOSB
(5).MOV CX,4
REPEAT:SHL AX,1
RCL DX,1
LOOP REPEAT
(6).OR DX,DX
JNS NEXT
NOT DX
NOT AX
ADD AX,1
ADC DX,0
NEXT:......
1.
.386
extrn _bout:far
code segment para use16
assume cs:code
begin: mov ax,0101010B
xor dl,dl
again: bsf cx,ax
cmp ax,0
jnz next
jmp exit
next: inc dl
call far ptr _bout
btr ax,cx
jmp again
exit: mov ah,4cH
int 21H
code ends
end begin
2. ;代码
cmp dx,bx
ja l2
jz next0
jmp l1
next0: cmp ax,cx
ja l2
jmp l1
3.(1) btc ax,0\2\4
(2) and al, 00101010B
cmp al, 00101010B
jz l1
(3) pushf
pop ax
(4) mov es,seg
mov di,3000H
mov al,0
mov cl,50
next: stosb
dec cl
jnz next
(5) ;逻辑左移
shld dx,ax
mov cl,4
shl ax,cl
(6) ;结果存放在dx:ax
bt dx,15
jc s0
jmp exit
s0: mov cx,0
sub cx,ax
mov ax,cx
mov cx,0
sbb cx,dx
mov dx,cx
exit: .........