一个简单的问题
时间:2011-03-21
来源:互联网
刚写汇编不久。
PadLen db 1,63 dup (3)
block db 512 dup(0)
我想把PadLen里的内容复制到block中,写了下面代码
Assembly code
调试看了下,好像不对。希望各位汇编的高手们指点一下,如果要实现这样的功能该怎么做???
PadLen db 1,63 dup (3)
block db 512 dup(0)
我想把PadLen里的内容复制到block中,写了下面代码
Assembly code
mov cx,64 mov bx,offset PadLen mov bp,offset block loop3: mov dx,[bx] mov [bp],dx inc bx inc bp loop loop3
调试看了下,好像不对。希望各位汇编的高手们指点一下,如果要实现这样的功能该怎么做???
作者: shaotine_wu 发布时间: 2011-03-21
assume cs:code,ds:data,es:data
mov ax,data
mov ds,ax
mov es,ax
mov si,offset PadLen
mov di,offset block
mov cx,lengthof PadLen
cld
rep movsb
mov ax,data
mov ds,ax
mov es,ax
mov si,offset PadLen
mov di,offset block
mov cx,lengthof PadLen
cld
rep movsb
作者: masmaster 发布时间: 2011-03-21
bp在8086汇编里有专门的用途, 不要擅自使用!
作者: masmaster 发布时间: 2011-03-21
不要用bp,这个是SS专用的
用si和di设置偏移地址
然后用rep movsb进行复制
用si和di设置偏移地址
然后用rep movsb进行复制
作者: WhiteBird99 发布时间: 2011-03-21
mov cx,64
mov bx,offset PadLen
mov bp,offset block
loop3:
mov dx,[bx]
mov ds:[bp],dx
;bp默认的段地址为ss,所以需要加段前缀(ds:)指明。若用si或di代替bp则可省去段前缀。
inc bx
inc bp
loop loop3
mov bx,offset PadLen
mov bp,offset block
loop3:
mov dx,[bx]
mov ds:[bp],dx
;bp默认的段地址为ss,所以需要加段前缀(ds:)指明。若用si或di代替bp则可省去段前缀。
inc bx
inc bp
loop loop3
作者: shzhfu 发布时间: 2011-03-21
assume cs:code,ds:data,es:data
mov ax,data
mov ds,ax
mov es,ax
mov si,offset PadLen
mov di,offset block
mov cx,lengthof PadLen
change:
mov al,[si]
xchg [di],al
inc si
inc di
loop change
mov ax,data
mov ds,ax
mov es,ax
mov si,offset PadLen
mov di,offset block
mov cx,lengthof PadLen
change:
mov al,[si]
xchg [di],al
inc si
inc di
loop change
作者: angel_kong 发布时间: 2011-03-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28