注册 登录
编程论坛 汇编论坛

关于emu8086 4.08版本内存分配问题

wwfdzh2012 发布于 2013-11-12 12:56, 753 次点击
程序代码:
data segment
    a dw 'AB'
code segment
    assume cs:code,ds:data
start:
    mov ax,data
    mov ds,ax
    code ends
end start
根据8086的双字内存分配规则,dw 'AB'会把这个字符串当作一个整体转换成ASCII码后是dw 4142h,再根据低地址对应低位,高地址对应低位的原则,存入内存中从低到高为
42,41,也就是B,A,但是用这个版本的编译器结果是相反的,3.07版本却似正常的,这是什么情况?
2 回复
#2
zklhp2013-11-12 15:40
问题就是这个'AB'到底怎么理解了 我倒是觉得楼主写这种代码不大好。。
#3
wwfdzh20122013-11-12 16:45
回复 2楼 zklhp
我是模仿清华的沈美明写的教材的风格,是有什么缺点?总感觉清华的教材许多都颇有争议,像严蔚敏的数据结构,谭浩强的C程序设计都颇有争议,我也感觉这些书的缺点确实多,请问,dw ‘AB’在内存的存储情况不是‘B’,‘A'吗?反正教材是这么写的,emu8086 3.07结果和教材一样,masm5的结果也是和教材一样,就这个版本不一样。
1