初学汇编语言有几个问题,求助
时间:2011-06-09
来源:互联网
1.在X86汇编语言中,正确的出栈指令是()
A. POP OFFSET VARW B POP ES:[DX+SI+3]
C.POP [BP+DI+3] D POP AH
我的疑问是A选项,OFFSET VARW 获取标号VARW的偏移地址,POP之后将数据放入该地址中。但觉得B也对。
哪里出问题了?
2.在X86汇编语言中,正确的乘法指令是()
A IMUL WORD PTR[BX+SI+100] B IMUL DS
C MUL BYTE PTR[DX+DI+100H] D MUL IP
这题我觉得A,C都是正确的。
3. 关于AAA指令,比如有段程序是这样的:
MOV AX,2337H
ADD AL,39H ;AF=(),PF=()
AAA ;AH=(),AL=()
...
疑问:AH不为0,执行AAA之后结果应该是怎么样的?
求具体的思路 谢谢了
作者: laojiaqi 发布时间: 2011-06-09
1.B的问题是DX不能用于间接寻址。
2.和第一题一样,DX不能用于间接寻址。
能间接寻址的寄存器只有bx,bp,si,di。
第3题我也不会。
2.和第一题一样,DX不能用于间接寻址。
能间接寻址的寄存器只有bx,bp,si,di。
第3题我也不会。
作者: haojiahuo50401 发布时间: 2011-06-10
刚才上网查了一下:
http://jpkc.zzu.edu.cn/hbyycai/courses/list.asp?id=86
有这个例子:
mov ax,0608h ;ax=0608h,表示非压缩BCD码68
mov bl,09h ;bl=09h,表示非压缩BCD码9
add al,bl ;二进制加法:al=08h+09h=11h
aaa ;十进制调整:ax=0707h
;实现非压缩BCD码加法:68+9=77
所以楼主的问题应该也能得到解决:本来是2337h+39h=2370h,但是要实现非压缩BCD码加法,执行aaa指令,你可以认为是进行十进制加法:所以结果应该为2376h。
http://jpkc.zzu.edu.cn/hbyycai/courses/list.asp?id=86
有这个例子:
mov ax,0608h ;ax=0608h,表示非压缩BCD码68
mov bl,09h ;bl=09h,表示非压缩BCD码9
add al,bl ;二进制加法:al=08h+09h=11h
aaa ;十进制调整:ax=0707h
;实现非压缩BCD码加法:68+9=77
所以楼主的问题应该也能得到解决:本来是2337h+39h=2370h,但是要实现非压缩BCD码加法,执行aaa指令,你可以认为是进行十进制加法:所以结果应该为2376h。
作者: haojiahuo50401 发布时间: 2011-06-10
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28