4ch 和 4c00h 的区别?
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
d segment
db 0,0,0,0,0,0,0,0
d ends
code segment
start: mov ax,a
mov ds,ax ;定义A段地址
mov ax,d
mov es,ax ;定义c段地址
mov bx,0 ;BX=0
mov cx,8 ;循环8次
s:mov al,ds:[bx]
mov es:[bx],al
inc bx
loop s ;依次将A段数据移入C段
mov ax,b
mov ds,ax ;定义B段地址
mov ax,d
mov es,ax ;定义C段地址
mov bx,0 ;BX=0
mov cx,8 ;循环8次
s0:mov al,ds:[bx]
add es:[bx],al
inc bx
loop s0 ;依次将B段数据加入C段
mov ax,4c00h 如果将其改为 4ch 用 msam(编译器)能生成exe文件 但是不能执行
int 21h
code ends
可是其他的程序 用4ch能执行,请问这是怎么回事啊?
[解决办法]
mov ax,4ch
这里的4ch实际上是004ch,即ah=0, al=4ch
而正确的赋值应当是ah=4ch, al=0;ah表示功能号,al在这里表示程序的返回值
[解决办法]
mov ax,4c00H
ax->4c00H
mov ax,4cH
ax->004cH
[解决办法]
mov ax,4c00H
ax->4c00H
mov ax,4cH
ax->004cH
[解决办法]