鱼C论坛

 找回密码
 立即注册
查看: 3284|回复: 5

关于计算机对ASCII码存储和使用的一个问题

[复制链接]
发表于 2018-3-3 07:15:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在看汇编的视频时偶然想到的,或许是由于基础知识太少,此问题思考许久,不得答案。在网上查,却也不知应该怎么搜索。也未搜索到相关的资料。
特此请教大家。

下面入正题:
书上讲任何字符在计算机中都有个编码,用以存储数据。(这里就具体到ASCII码来讲)。

当我们让电脑(以8位机为例)计算1+1时,
它是计算的0000 0001+0000 0001呢,
还是计算的ASCII中的00110001+00110001呢?
因为我们输入的操作数1,对于用ASCII存储的电脑来说,不是00110001吗?
所以我一直搞不懂,它真正操作的是哪个数。

真诚请教,非常感谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-3 08:14:24 | 显示全部楼层
按照你的理解,计算的应该是 0000 0001+0000 0001
请看下面的程序

输入 2 空格 3
GIF.gif
assume cs:code, ds:data, ss:stack

stack segment
        db 100h dup (0)
stack_top:
stack ends

data segment
num0        db 0
num1        db 0

data ends

code segment
start:
        mov        ax, stack
        mov        ss, ax
        mov        sp, stack_top
        mov        ax, data
        mov        ds, ax
        mov        ax, 0b800h
        mov        es, ax
        
        mov        ah, 01h
        int        21h                        ; 键盘中断,读取一个字符
        sub        al, '0'                        ; 从键盘读取到的是字符,字符减 ‘0’,也就是减 30h,转换成数字
        mov        byte ptr [num0], al        ; 被加数
        
        mov        ah, 01h
        int        21h                        ; 键盘中断,读取一个字符(空格),直接忽略
        
        mov        ah, 01h
        int        21h                        ; 键盘中断,读取一个字符
        sub        al, '0'                        ; 从键盘读取到的是字符,字符减 ‘0’,也就是减 30h,转换成数字
        mov        byte ptr [num1], al        ; 加数
        
        mov        al, byte ptr [num0]
        add        al, byte ptr [num1]        ; 被加数 + 加数,现在 ax 中是两个数的和
        
        add        al, '0'                        ; 把这个和加 ‘0’,也就是加 30h,转换成字符,用于下面显示
        mov        ah, 07h                        ; 字符属性
        mov        es:[160 * 10], ax
        
        
        mov        ax, 4c00h
        int        21h
code ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-3 08:19:04 | 显示全部楼层
注释部分好不整齐 ^_^
无标题1.png

我的代码长这样,复制过来就成上面那样了
^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2018-3-3 20:14:39 | 显示全部楼层
人造人 发表于 2018-3-3 08:19
注释部分好不整齐 ^_^

谢谢,能看懂您的意思。之前一直疑惑了很久,猜测会做这样的减法处理,但是只能胡乱猜,远不如您这个图来得肯定。
非常感谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-4 00:45:44 | 显示全部楼层
nonepeople 发表于 2018-3-3 20:14
谢谢,能看懂您的意思。之前一直疑惑了很久,猜测会做这样的减法处理,但是只能胡乱猜,远不如您这个图来 ...

^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-4 02:36:02 | 显示全部楼层
nonepeople 发表于 2018-3-3 20:14
谢谢,能看懂您的意思。之前一直疑惑了很久,猜测会做这样的减法处理,但是只能胡乱猜,远不如您这个图来 ...

无标题1.png
注释忘记改了,应该是  ; 被加数 + 加数,现在 al 中是两个数的和

希望没有造成误解
^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 06:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表