马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
4.1-4.2assume cs:code
code segment
start: mov ax, 20H ;(ax) = 20H
mov ds, ax ;设置段地址 (ds) = (ax)
mov bx, 0 ;(bx) = 0 清空bx寄存器里面的值,用于存储偏移地址及变量 配合段地址ds
mov cx, 64 ;(cx) = 64 用于存储循环变量 64次 配合loop使用
s: mov ds:[bx], bl ;开始循环,用Bl低8位存放数据在ds:[bx]内存单元中 ((ds)*16+(bx)) = (bl)
inc bx ;(bx) = (bx)
loop s ;跳转指令
mov ax, 4c00H
int 21H
code ends
end start
4.3assume cs:code
code segment
start: mov ax,0BA6H ;3 字节 这个地址每台计算机都不一样
mov ds,ax ;2 字节
mov ax,0020h ;3 字节
mov es,ax ;2 字节
mov bx,0 ;3 字节
mov cx,24 ;3 字节
s: mov al,[bx] ;2+1 字节
mov es:[bx],al ;2 字节
inc bx ;1 字节
loop s ;2 字节
mov ax,4c00H
int 21H
code ends
end start
复制的是 mov ax,0BA6H 至 loop s 的代码段,0BA6:0H ~ 0BA6:18H 地址
赋值的是二进制数据(这里也不太肯定),有24个字节,先把程序写好编译好,debug 程序,利用 -u 0BA6H:0查看汇编代码有多少个字节,然后自己算一下 |