16.1 检测点 大牛帮忙看看代码这样写对不对,谢谢
16.1 检测点 大牛帮忙看看代码这样写对不对,谢谢以下是代码:
assume cs:code
code segment
a dw 1,2,3,4,5,6,7,8
b dd 0start: mov si,0
mov cx,8
s:mov ax,a
add word ptr cs:,ax
adc word ptr cs:,0
add si,2
loop s
mov ax,4c00h
int 21h
code ends
end start
完全可以哦。你已经领会到标号的精髓啦。就是一个地址而已。
经过编译器编译后,两者的代码完全一样,对于cpu来说,都是一样的。
lukelqz 发表于 2012-12-27 21:54 static/image/common/back.gif
完全可以哦。你已经领会到标号的精髓啦。就是一个地址而已。
听到luk这么说,俺很兴奋。多谢多谢。但是这编译后,执行后显示的怎么是乱码?还有鱼C的写的直接定址表例题,在我的WIN7本本上编译也不能过,我调示老久还是不行啊。望指点一下,再谢!
鱼C的代码 p282.asm:
assume cs:code
code segment
start:
mov al,0eh
call showbyte
mov ax,4c00h
int 21h
;子程序:
;用al传送要显示的数据
showbyte:
jmp short show
table db '0123456789ABCDEF' ;字符表
show: push bx
push es
mov ah,al
shr ah,1
shr ah,1
shr ah,1
shr ah,1 ;右移4位,ah中得到高4位的值
and al,00001111b ;al中为低4位的值
mov bl,ah
mov bh,0
mov ah,table ;用高4位的值作为相对于table的偏移,取得对应的字符
mov bx,0b800h
mov es,bx
mov es:,ah
mov bl,al
mov bh,0
mov al,table ;用低4位的值作为相对于table的偏移,取得对应的字符
mov es:,al
pop es
pop bx
ret
code ends
end start
编译结果:
{:2_27:}没啥问题啊。装个虚拟机吧。http://tieba.baidu.com/p/1027487547
win7搞16位的汇编,实在有点蛋疼。
lukelqz 发表于 2012-12-28 13:18 static/image/common/back.gif
没啥问题啊。装个虚拟机吧。http://tieba.baidu.com/p/1027487547
win7搞16位的汇编,实在有点蛋疼 ...
luke好给力,THKS VM ! 我算是服了我的本本了,装了虚拟机,老样子。照样是编译不通过。郁闷,打击我的积极性。算了,跳过!
页:
[1]