汇编 试编写一段程序,其功能为将30~32H单元的内容拆成6个半字节依次存放到33~38H单元
作者&投稿:万蚂 (若有异议请与网页底部的电邮联系)
fun:
mov r0, #33h
mov r1, #32h
loop:
mov a, @r0
swap a
inc r0
orl a, @r0
mov @r1, a
inc r1
inc r0
cjne r0, #39h, loop
ret
;R1R0 /R 2 -> R3
ORG 0000H
MOV R1, #12H
MOV R0, #34H
MOV R2, #78H
CALL R10_DIV_R2_TO_R3
;R3 = 26H
NOP
SJMP $
R10_DIV_R2_TO_R3:
MOV R3, #0
_D1:
CLR C
MOV A, R0
SUBB A, R2
MOV R0, A
MOV A, R1
SUBB A, #0
MOV R1, A
JC _D2
INC R3
SJMP _D1
_D2:
RET
END
MOV SI, 30H ; 指向待处理的数据
MOV DI, 33H ; 指向目标存储区
NEXT:
MOV AL, [SI] ; 取数,存AL和AH
MOV AH, AL
AND AL, 0FH ; 处理AL中的低4位(半字节)
MOV [DI], AL ; 保存一个半字节
INC DI ; 目标存储指针加1
PUSH CX ; 为了移位要用CL,暂存CX
MOV CL, 4 ;
SHR AH, CL ; 将AH右移4位,移出丢弃低4位,使高4位移到低4位
POP CX ; 恢复CX
MOV [DI], AH ; 保存一个半字节
INC DI ; 目标存储指针加1
INC SI ; 指向下一个待处理的数据
LOOP NEXT ; 循环
汇编,有很多种啦。
璩唐天麻: MOV R6 , #8 MOV R0 , #37H MOV R1 , #38H LOOP:MOV A , @R0 MOV @R1 , A DEC R0 DEC R1 DJNZ R6 , LOOP
温宿县15861709049: 汇编 试编写一段程序,其功能为将30~32H单元的内容拆成6个半字节依次存放到33~38H单元 - ?
璩唐天麻: MOV CX, 3 ; 3个数据要处理,循环3次MOV SI, 30H ; 指向待处理的数据MOV DI, 33H ; 指向目标存储区 NEXT:MOV AL, [SI] ; 取数,存AL和AHMOV AH, ALAND AL, 0FH ; 处理AL中的低4位(半字节)MOV [DI], AL ; 保存一个半字...
温宿县15861709049: 试编写一段程序,其功能为:将33H~38H中6个单字节BCD码拼成3个压缩的BCD码存放在32H开始的单元中?
璩唐天麻:mov r0, #33h mov r1, #32h loop: mov a, @r0 ;第一个数 swap a ;放到低位 inc r0 ;地址+1 orl a, @r0 ;取得第二个数,拼合 mov @r1, a ;存结果 inc r1 inc r0 cjne r0, #39h, loop ;循环处理33H~38H
温宿县15861709049: 单片机汇编 编程```高手请进!!?
璩唐天麻: ORG 0000H LJMP START ORG 0100H START:MOV R0,#30H MOV R1,#33H ;记录存储地址 MOV R2,#03H ;循环次数 LP:MOV A,@R0 ;取压缩BCD码 MOV R3,A ;保存压缩BCD码 ANL A,#0FH ;取低四位 MOV @R1,A ;存非压缩BCD码 MOV A,R3 ;取高四位 ANL A,#0F0H INC R1 ;存非压缩BCD码 MOV @R1,A INC R0 DJNZ R2,LP ;R2减去1不为0则循环 END
温宿县15861709049: 用汇编语言试编写一段程序,内存单元连续存储3个数据,求出中间值, - ?
璩唐天麻: DAT1 1000h:0 1,2,18h,34h,35h,36h,45h,0f0h DAT2 1000h:8 0ch,0,0dh,0,0fbh,0ffh COUNT=7 1000h:0eh 12h,0,78h,56h DAT3 1000h:12h 0,3,0,0,8,0,0,0
温宿县15861709049: 用汇编语言试编写一段程序,求三个带符号字符数据中的最大值,并将该最大值存入MAX字单元中. - ?
璩唐天麻: DATA SEGMENT N1 DB -1,-4,-50 MAX DB 0 DATA ENDS STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV BX,OFFSET N1 ...
温宿县15861709049: 汇编语言,编写一段程序将02000H~03FFFH单元全部写入FFH .要完整的程序! - ?
璩唐天麻: 内存区02000H~03FFFH 这种绝对地址空间在windows系统中是不容许写入的. 下面程序是在64k的代码段中写入,是在windows虚拟的dos模式,在限定的空间中的操作,所以能成功运行. CODE SEGMENTASSUME CS:CODEORG 100HSTART: PUSH CSPOP ESLEA DI,BUFMOV CX,2000HCLDMOV AL,0FFH@0:STOSBLOOP @0 MOV AH,4CHINT 21H ORG 2000HBUF DB 2000H DUP(?)CODE ENDSEND START
温宿县15861709049: 汇编语言程序,3、编写一程序,能从键盘读入二个十进制数,并将这二个十进制数 分别转换为二进制数,然后 - ?
璩唐天麻: 编写一程序,能从键盘读入二个十进制数,并将这二个十进制数 分别转换为二进制数,然后求其和,再将和以十进制形式进行显示 并画出流程图
温宿县15861709049: 请编写一段arm汇编指令程序,实现以下功能:a.清空0x30001000开始的0x4000字节 - ?
璩唐天麻: ldr r0, = 0x30001000 mov r1, # 0 movw r2, # 0x1000 qingling: str r1, [r0], # 4 subs r2, # 1 bne qingling