; 本程序通过编译,运行正确。
Code Segment
Assume CS:Code,DS:Code
Start: mov al,79
mov cl,3
xor ah,ah ;ax高位字节置0
mov bx,ax ;保存ax
shl ax,1 ;ax2
mov dx,ax ;保存ax
shl ax,cl ;ax8,实现ax16
add ax,dx ;实现ax18
add ax,bx ;实现ax19
Exit_Proc: mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束
;下列程序,已经通过测试,符合题目要求。
ORG 0000H
JMP MAIN
ORG 0030H
MAIN:
MOV SP, #70H
ORL PSW, #08H
MOV 00H, #07FH
MOV 01H, #0BFH
MOV 02H, #0DFH
MOV 03H, #0EFH
MOV 04H, #0F7H
MOV 05H, #0FBH
MOV 06H, #0FDH
MOV 07H, #0FEH
MOV R0, #0
MOV R1, #0
LOOP:
MOV P0, @R0
MOV P2, @R1
MOV A, P1
ORL A, #0FH
CPL A
JZ LOOP
CALL DELAY
MOV A, P1
ORL A, #0FH
CPL A
JZ LOOP
MOV B, A
W1:
MOV A, P1
ORL A, #0FH
CPL A
JNZ W1
JB B4, Z_R0
JB B5, J_R0
JB B6, Z_R1
JB B7, J_R1
JMP LOOP
Z_R0:
INC R0
ANL 08H, #07H
JMP LOOP
J_R0:
DEC R0
ANL 08H, #07H
JMP LOOP
Z_R1:
INC R1
ANL 09H, #07H
JMP LOOP
J_R1:
DEC R1
ANL 09H, #07H
JMP LOOP
DELAY:
MOV R6, #10
DJNZ R7, $
DJNZ R6, $ - 2
RET
END
SHL SHR SAL SAR RCR指令的格式是相同的:SHL dest,count
dest为目标 就是要位移的数据 count是位移的次数
状态位cf,sf,zf,pf随运算结果变化;OF的变化如下:当COUNT=1时,若位移前后dest的最高位不同时,则OF=1,否则OF=0;当COUNT>1时,OF不确定
我给你举个例子:MOV CL,1
MOV AL,21H
SHL AL,CL
AL=21H=00100001H 由于是左移1位,那么CF=0,AL=01000010,最高位是0,没有变 就是说OF=0
以上就是关于汇编题目,求解:用移位、加法和传送指令编写程序段实现AL乘以19,结果存于AX中全部的内容,包括:汇编题目,求解:用移位、加法和传送指令编写程序段实现AL乘以19,结果存于AX中、用汇编语言,用k1-k4控制LED移位(要求用汇编语言)、关于8086/8088汇编语言中的 移位指令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)