转移指令作业
1、假设(1)~(5)题中AX和BX中的内容为带符号数,CX和DX中的内容为无符号数,请用相应指令和条件转移指令实现以下判断。(每个小题各自独立)
例如:若BX等于AX的值,则转去执行LP1对应的程序段如下:
CMP AX ,BX
JZ LP1
…
LP1:…
简写成:
CMP AX ,BX
JZ LP1
(1)若DX的值超过CX的值,则转去执行ABC;
CMP DX ,CX
JA ABC
(2)若BX的值大于AX的值,则转去执行LP1;
CMP BX ,AX
JNLE LP1
(3)CX中的值为零吗?若是则转去执行ZERO;
CMP CX, 0
JZ ZERO
(4)若BX的值小于等于AX的值,则转去执行EQ_SMA;
CMP BX ,AX
JLE EQ_SMA
(5)若DX的值低于等于CX的值,则转去执行EQ_SMA。
CMP DX ,CX
JBE EQ_SMA
(6)若AX的D10位为0则转LP1。
无符号比较
cmp al,3
若al=3则ZF为1
若al≠3则ZF为0
若al<3则CF为1
若al≤3则CF为1或ZF为1
若al>3则CF为0,ZF为0
若al≥3则CF为0或ZF为1
有符号比较
cmp al,3
若OF为0,SF为1则al<3
若OF为0,SF为0且ZF为0则al>3
若OF为0,SF为0且ZF为1则al=3
若OF为1,SF为1则al>3
若OF为1,SF为0则al<3
(1)
data segment
org 1000h
data ends
code segment
assume cs:code,ds:data
start : mov ax ,data
mov ds ,ax
MOV DX,04H
MOV CX,02H
ABC:DEC DX;先自减1在判断运行时删掉
CMP DX ,CX
JA ABC
mov ah,4ch
int 21h
code ends
end start
(2)
data segment
org 1000h
data ends
code segment
assume cs:code,ds:data
start : mov ax ,data
mov ds ,ax
MOV BX,04H
MOV AX,02H
LP1:DEC BX
CMP BX ,AX
JNLE LP1
mov ah,4ch
int 21h
code ends
end start
(3)
data segment
org 1000h
data ends
code segment
assume cs:code,ds:data
start : mov ax ,data
mov ds ,ax
MOV CX,03H
MOV AX,01H
ZERO:DEC CX ;0001h
ONE :DEC AX
CMP AX ,0
JZ ZERO
mov ah,4ch
int 21h
code ends
end start
(4)
data segment
org 1000h
data ends
code segment
assume cs:code,ds:data
start : mov ax ,data
mov ds ,ax
MOV BX,02H
MOV AX,04H
EQ_SMA:DEC AX
CMP BX ,AX
JLE EQ_SMA
mov ah,4ch
int 21h
code ends
end start
(5)
data segment
org 1000h
data ends
code segment
assume cs:code,ds:data
start : mov ax ,data
mov ds ,ax
MOV DX,02H
MOV CX,04H
EQ_SMA:DEC CX
CMP DX ,CX
JBE EQ_SMA
mov ah,4ch
int 21h
code ends
end start
连续运行下列指令,在横线处写出对应结果:(10*10分=100分)
MOV AX,1234H
XCHG AL,AH 1、AX= 3412 H
MOV CL,2
MOV BX,8AC4H
SHL BX,CL 2、BX= 2B10 H
ADC AX,BX 3、AX= 5F22 H
AND AX,BX 4、AX= 0B00 H
TEST AX,BX 5、AX= 0B00 H
NEG AX 6、AX= F500 H
DEC AX 7、AX= F4FF H
CMP AX,BX 8、AX= F4FF H
SUB AX,BX 9、AX= C9EF H
RCL AX,1 10、AX= 93DE H