汇编语言循环结构程序设计

2024-12-03 11:57:26
推荐回答(4个)
回答1:

assume cs:code,ds:data

data segment
bcd db 01h,23h,45h,67h,89h,13h,24h,35h,46h,57h ;bcd码
asc db 20 dup(0) ;转换之渣兆码后存在这里
data ends

code segment
start: mov ax,data
mov ds,ax

mov cx,10 ;循环次数
lea si,bcd ;si指向bcd码
lea di,asc ;di指向转换之后的目标位置
next: mov al,[si] ;取出如哪bcd码
mov dl,al ;放dl保存
and al,0fh ;去掉高4位,先处理低位的bccd码
or al,30h ;转换成ascii码
mov [di],al ;存到目标位置
inc di ;修改目猜清标地址指针
push cx ;要用到移位指令,需要cl寄存器,所以将循环次数进栈保存
mov cl,4 ;移动4位
shr dl,cl ;将原bcd码的高位移到地4位上
or dl,30h ;转换成ascii码
mov [di],dl ;存入目标位置
inc di ;修改地址指针
inc si ;修改地址指针
pop cx ;循环次数出栈
loop next ;循环
mov ax,4c00h
int 21h
code ends
end start

木西?我喜欢这名字

回答2:

ynus的回答里用到圆拦了堆栈,所以最好橘清胡还是正并增加一个stack段:
stack segment
dw 0
stack ends

回答3:

分真高啊.................

回答4:

是单片机的?是什么单片机的?