大神如果AL的第i,i+1位状态与BL的第6,7位相同,将AH清零,否则AH=1,i在CL中。对了大神你对中断那熟吗?

2025-01-02 12:13:26
推荐回答(1个)
回答1:

STACK SEGMENT ;定义一个堆栈段
DW 20DUP(?)
STACK ENDS

CODE SEGMENT ;定义代码段
ASSUME CS: CODE, SS:STACK
START: MOV AX,STACK
MOV SS,AX

MOV AH,6 ;计算需要左移的位数 保存在CL中
SUB AH, CL
JZ LLL
MOV CL,AH
MOV AH,AL ;将AL内容暂时送给AH,AL中断内容始终不变
ROL AH, CL ;按计算结果左移 移位后将原AL的第i,i+1位 变为第6位和第7位
LLL: AND AH,0C0H ;屏蔽其余位 只保留6、7位
PUSH BX ;临时保存BL的内容
AND BL,0C0H ;屏蔽其余位 只保留6、7位
CMP AH,BL ;比较
JZ LL1
MOV AH,1
JMP LL2
LL1: MOV AH,0
LL2: POP BX ;恢复BL的内容
CODE ENDS
END START

哈哈 做完了 你的问题真不少啊 请为我选择(满意回答)