si

zl0606520 2008-10-06 12:44:58
若数据段已定义tab db '987654321',则下程序执行后,(al)=? (bx)=?
lea si,tab
mov cx,length tab
mov bx,size tab
sub bx,cx
mov al,[bx+si]主要是从这以后的不理解是怎么回事?谢谢了
inc si
mov dl,[bx+si]
add al,dl
daa
...全文
117 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zl0606520 2008-10-08
  • 打赏
  • 举报
回复
这里是根据什么判断af的值是置为1的呀?
BAYNPU 2008-10-07
  • 打赏
  • 举报
回复
做BCD码加法运算时,当结果大于9时或AF或CF等于1时,需要做加6调整.
zl0606520 2008-10-07
  • 打赏
  • 举报
回复
执行daa时,是不是add时af值为1了?这里面的进位可以引起af变为1,那还有什么情况可以把它的值变为1,麻烦系统的讲一下af是怎么用的?
BAYNPU 2008-10-06
  • 打赏
  • 举报
回复
39h+38h=71h
daa=77h
zl0606520 2008-10-06
  • 打赏
  • 举报
回复
那是怎么得到77h的呀!'9'+'8'用asii码是怎么表示出来的呀!你运行add后al等于多少呀?
BAYNPU 2008-10-06
  • 打赏
  • 举报
回复
咋 运算出来跟上楼的老兄不大一样呀.
程序执行后,(al)=77 (bx)=0000 .
用户 昵称 2008-10-06
  • 打赏
  • 举报
回复
好像这程序是算加法玩的。
用户 昵称 2008-10-06
  • 打赏
  • 举报
回复
lea si,tab ;si = tab的地址
mov cx,length tab ; cx = 9
mov bx,size tab ; bx = 9,好像是
sub bx,cx ; bx = 0, cx = 9
mov al,[bx+si] ; al = [si] = '9'
inc si ; si++
mov dl,[bx+si] ; dl = [si] = '8'
add al,dl ;
daa

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧