实验9,换行的问题,救急
这是小甲鱼老师的源代码,为什么换行赋值是:add ax,0ah
给es段地址加10(0ah)就是换行了
为什么不是改变偏移地址实现换行呢?
来个大佬解释一下呀,万分感激
assume cs:code ds:data ss:stack
data segment
db 'welcome to masm?'
db 02h,24h,71h
data ends
stacksegment
dw 8 dup (0)
stack ends
code segment
start :mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
xor bx,bx
mov ax,0b872h
mov cx,3
s3:push cx
push ax
push bx
mov es,ax
mov si,0
mov di,0
mov cx,10h
s1: mov al,ds:
mov es:,al
inc si
add di,2
loop s1
mov di,1
pop bx
mov al,ds:10h
inc bx
mov cx,10h
s2:mov es:,al
add di,2
loop s2
pop ax
add ax,0ah(就是这里)
pop cx
loop s3
mov ax,4c00h
int 21h
code ends
end start 偏移地址加1,物理地址加多少?物理地址也加1对吧?
那段地址加1,物理地址加多少?加16对吧?
段地址加10,物理地址加了多少?
10 * 16 = 160
加了160对吧
如果段地址不变,要变偏移地址,那偏移地址应该加多少?加160对吧?
160是个什么数字呢?
一行80个字符对吧?一个字符两个字节对吧?(一个是字符的值,另一个是字符的属性,就是前景色、背景色、是不是闪烁这些)
那么,80 * 2 = 160
物理地址加160就换到下一行了,没问题吧?
重要的是物理地址加了多少,不管是加段地址也好,还是加偏移地址也好,最终是导致物理地址改变了
人造人 发表于 2022-8-28 01:33
偏移地址加1,物理地址加多少?物理地址也加1对吧?
那段地址加1,物理地址加多少?加16对吧?
段地址加1 ...
好的好的,谢谢大佬,我懂了,感谢感谢,太感谢了
页:
[1]