用汇编语言把十进制数转成二进制,再怎么转成格雷码

a752552208 a752552208 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
转成二进制的程序是

data segment
pr db "Input a number:$"
pr1 db 0ah,0dh,"Binary out:$"
buf db 10
nu db 0
string db 10 dup("$")
x dw ?
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,offset pr
mov ah,09h
int 21h
mov ah,0ah
lea dx,buf
int 21h
mov cl,nu
xor ch,ch
lea si,string
mov bp,10
xor bx,bx
lp: mov al,[si]
and al,0fh
cbw
xchg ax,bx
mul bp
xchg ax,bx
add bx,ax
inc si
loop lp
mov x,bx
lea dx,pr1
mov ah,09h
int 21h
mov cx,10h
lp1: xor dl,dl
rol bx,1
rcl dl,1
add dl,30h
mov ah,02h
int 21h
loop lp1
mov ah,4ch
int 21h
code ends
end start



然后怎么转成格雷码??

格雷码是二进制的每一位和它前面一位xor,比如二进制(0)10011,格雷码是11010。。。。。。


有人给我说
{假定ax中已有数值。
只需
mov bx,ax
shr bx,1
xor ax,bx
此时ax中即为该数的格雷码。}

但这个二进制是一位一位的输出的,怎么办??
...全文
评论 9
收藏 已收藏
分享
返回顶部
a752552208
汇编语言 21,500 成员 41,619 内容