有个汇编子程序

ASC_BINPROCINCCOUNTAMOVCX,COUNTAMOVAX,0MOVBX,10LEASI,ABLOOP01:MOVDL,[SI];ANDDL,0FHMOV... ASC_BIN PROC
INC COUNTA
MOV CX,COUNTA
MOV AX,0
MOV BX,10
LEA SI,AB
LOOP01: MOV DL,[SI] ;
AND DL,0FH
MOV [SI],DL
MUL BX
MOV DL,[SI]
MOV DH,0
ADD AX,DX
INC SI
LOOP LOOP01

开始时countA=3 si-si+2 保存着由键盘输入的123
LEA SI,AB 是干嘛用的还有 MOV DL,[SI] ,and dl,ofh mov [si],dl这三条是连载一起用吗 最后AX是怎么保存的
展开
 我来答
做而论道
高能答主

2013-06-23 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
si-si+2 保存着由键盘输入的123,

把它们变成二进制,算法应该是 (1 * 10 + 2) * 10 + 3 = 100 + 20 + 3 = 123。

正确程序如下:

ASC_BIN PROC
MOV CX, COUNTA ;3
MOV AX, 0
MOV BX, 10
LEA SI, AB
LOOP01:
MUL BX ;0*10; 1*10;12*10;
MOV DL, [SI] ;'1' ; '2' ;'3' 都是ASCII码
AND DL, 0FH ; 1 ; 2 ; 3 变成数字
MOV DH, 0
ADD AX, DX ;0+1 ; 10+2;120+3

INC SI
LOOP LOOP01 ;循环三遍

循环三遍,共乘了三次,加了三次,过程可见上面的注释。

结果在 AX 中,并没有保存。
追问
AX中是以BCD码的还是二进制
追答
结果是二进制数。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式