关于第27课视频中的那个
本帖最后由 ぃ_夕文 于 2011-8-8 17:55 编辑关于第27课视频中
重写一次课本中第5.5节 题目是计算FFFF:0~FFFF:B单元中的数据的和,结果存储在DX中
视频中代码如下:
assume cs:code
code segment
mov ax,0ffffh
mov ds,ax
mov bx,0
mov dx,0
mov cx,12
s:mov al,
mov ah,0
add dx,ax
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
就是不明白它为什么要赋予ah=0,,,,,不要它行不行??为什么
这个
mov ah,0 //这ah为什么要赋与0?,,想不明白,,谁懂可以告诉我哈,,谢谢{:5_109:}
ax 分成 两个8位寄存器ah 存放高位al 存放低位 ah=10h al=20h 那么ax=1020h 为什么赋予ah=0,要看题目的 这没有为什么 课本中第5.5节 题目是计算FFFF:0~FFFF:B单元中的数据的和,结果存储在DX中
视频中代码如下:
assume cs:code
code segment
mov ax,0ffffh
mov ds,ax
mov bx,0
mov dx,0
mov cx,12
s:mov al,
mov ah,0
add dx,ax
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
就是不明白它为什么要赋予ah=0,,,,,不要它行不行??为什么 al是为了确定后面的是以字节为计算单元的,ax为字型寄存器,且在前面ax被赋予ffff了,你把低两位改为中的值,哪高两位还是ff阿,这样你得清空它才正确! 所以不能去掉,如果在mov al,之前添加mov ax,0指令,你所说的那行可以去掉 s:mov al,
mov ah,0
add dx,ax
inc bx
loop s
mov al,
mov ah,0
这段代码的意思是不是指向IP的??? 把ax清空就是0000,
物理地址FFFF:0000 是不是这个意思,,
那add dx,ax //是不是 add 0,0000这个原意?
我还是debug 调试一下 这不对,你得把寄存器和内存分开! ax是16为寄存器,ax可以分为ah、al两个八位(主要用于兼容八位寄存器),mov跟ah或者al是向cpu说明请给我内面插入一个八位数,mov al,就是把偏移到bx处的内存八位值插入al,即ax的低八位,而mov ah,0就是说把ax的高八位清0,你觉得它怎么为0? :(:(好像懂了
add dx,ax //这个AX是不是FFFF呢?
,,,谢谢parbbo,,, 好像懂了!!
页:
[1]