You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

x86汇编开发餐厅点餐系统 如何存储两位数数值作为变量

你对db类型的存储能力存在误解:db 定义的是单字节变量,可存储0~255范围内的整数,19这类两位数完全可以正常存储,你之前只能存储单数字的核心原因是输入逻辑仅读取了1次单个字符的键盘输入,和变量类型无关。

实现步骤

  1. 调整输入逻辑,两次读取键盘输入分别获得十位、个位的字符输入
  2. 将两次输入的字符分别转为数值后计算得到完整的订购数量
  3. 调整数值校验范围适配你需要的最大值(比如19)

示例修改代码

; 变量定义部分不用修改,db完全足够存储0~255的数值
countChicken db 0

; 输入逻辑修改
mov ah,09h
lea dx,getValueMsg  ; 提示用户输入数量
int 21h

; 读取十位数字
mov ah,01h
int 21h
sub al,30h          ; 转成数值
mov bl,10
mul bl              ; 十位数值乘10,结果存在ax中
mov bl,al           ; 暂存十位乘10的结果

; 读取个位数字
mov ah,01h
int 21h
sub al,30h          ; 转成数值
add al,bl           ; 加上十位的结果,得到完整的数值
mov countChicken,al ; 存入变量

; 校验逻辑调整,适配1~19的范围
cmp countChicken,1
jb  errorGetChickenValue
cmp countChicken,19
ja  errorGetChickenValue

可选兼容优化

如果需要支持用户只输入一位数(比如输入5后直接回车),可以在读取第二个字符时判断输入是否为回车符(ASCII码0Dh),如果是就直接使用第一次输入的数值作为最终结果,无需执行乘10相加的逻辑。

内容的提问来源于stack exchange,提问作者StillGotAlotToLearn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:06:01