求教一个声明初始化数据的问题,望个位大大解答
时间:2011-02-02
来源:互联网
在SECTION .bss中
INBUFF resb 100 ; keep the input char
base ; keep the input base
INBASE resb 1 ; keep the original base
OUTBASE resb 1 ; keep the output base
并未对base声明存储空间
但是代码里面,如下
convN:
lodsb ;load buffer to al
cmp al, 'q' ;if input is Q or q, end the program
je endProg
cmp al, 'Q'
je endProg
cmp al, 48 ;compare al with '0'
jl input_err ;if al<0 throw to input error
cmp al, 57 ;compare al with '9'
jg input_err ;if al>9 throw to input error
sub al, 48 ;subtrac al by 48, ascii->bin
mov bl, al ;move input base in bl
mov al, 10 ;mutiple [base] with 10 and add input number
mul byte [base]
add al, bl
mov byte [base], al
loop convN ;loop back to convN
base依旧可以存储数据,且运行的时候可以得出正确结果
请问各位大大,为什么base在这种情况下依旧可以正常???
INBUFF resb 100 ; keep the input char
base ; keep the input base
INBASE resb 1 ; keep the original base
OUTBASE resb 1 ; keep the output base
并未对base声明存储空间
但是代码里面,如下
convN:
lodsb ;load buffer to al
cmp al, 'q' ;if input is Q or q, end the program
je endProg
cmp al, 'Q'
je endProg
cmp al, 48 ;compare al with '0'
jl input_err ;if al<0 throw to input error
cmp al, 57 ;compare al with '9'
jg input_err ;if al>9 throw to input error
sub al, 48 ;subtrac al by 48, ascii->bin
mov bl, al ;move input base in bl
mov al, 10 ;mutiple [base] with 10 and add input number
mul byte [base]
add al, bl
mov byte [base], al
loop convN ;loop back to convN
base依旧可以存储数据,且运行的时候可以得出正确结果
请问各位大大,为什么base在这种情况下依旧可以正常???
作者: demonstar61 发布时间: 2011-02-02
这样的话,会不会讲数据十几储存在 INBASE里面?
作者: demonstar61 发布时间: 2011-02-02
上面说错了,不在INBASE里面,
前面有一个
mov bl, byte [base]
mov byte [INBASE], bl
但是程序运行的确正常,不知道为什么
前面有一个
mov bl, byte [base]
mov byte [INBASE], bl
但是程序运行的确正常,不知道为什么
作者: demonstar61 发布时间: 2011-02-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28