注册 登录
编程论坛 汇编论坛

b800:[bx]是怎么显示的

lbdsgg 发布于 2012-12-10 18:34, 455 次点击
比如:
assume cs:code,ds:data
data segment
    db 'abcd'
data eds
code segment
    mov bx,0
    mov si,0
    mov ax,0b800h
    mov es,ax
    mov dl,[si]
    mov es:[bx],dl
    inc si
    add bx,2
    mov ax,4c00h
    int 21h
code eds
end
我想问下,他是怎么显示a出来的呢,dl中放的是二进制码吧,那我把al给es:[0]他会自动转化成ASCII码吗?额~反正2进制跟ASCII码啊什么的转化不是很弄得清楚啊,能不能大神解释下~谢谢
1 回复
#2
zklhp2012-12-10 18:49
基本概念没搞明白

二进制 有两个意思 一个是指 0和1 开和关 计算机里面所有的东西都是二进制 无论文字 声音 图形 都是二进制
二进制还可以理解成一个意思 是数据的表示形式 同类的还有8进制和16进制 但这只是表示形式 也就是一个数是由何种形式表示的 其实和10进制是一个意思 这和计算机里面的东西都是二进制无关 因为计算机里面的东西都是二进制是计算机的本质 也就是电路的特性决定的

ASCII 简单理解就是英文字符和数字符号等的表示方法 也就是对英文字母编号 用数字来表示 所以A在计算机里就用65这个数来表示 其他的一样 这里要特别注意的是ASCII里的字符1 或者可以用'1'表示 这个其实是31h 和数字1不同

明白了这些 再来看你的问题 你应该明白了
1