.....求助,一个王爽书上的汇编入门题目
时间:2011-03-12
来源:互联网
题目是:将第一段数据和第二段数据逐个相加并依次存进第C段中
Assembly code
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 c segment db 0,0,0,0,0,0,0,0 c ends code segment start: mov ax,0 mov bx,0 mov cx,8 s:add al,cs:[bx] add al,cs:[bx+16] mov cs:[bx+32],al inc bx loop s mov ax,4c00h int 21h code ends end start
mov ax,0
mov bx,0
mov cx,8
s:add al,cs:[bx]
add al,cs:[bx+16]
mov cs:[bx+32],al
inc bx
loop s
mov ax,4c00h
int 21h
这段是空的,我自己填上去的
作者: A328240784 发布时间: 2011-03-12
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
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start:
;*******************************************
mov ax,a
mov es,ax
mov ax,c ;注意这几句的作用 书上应该有写 关于数据,指令,栈等的地址问题
mov ds,ax
mov bx,0
;**********************************************
mov cx,8
s1:mov ax,es:[bx]
add [bx],ax
add bx,2
loop s1
mov ax,b
mov es,ax
mov ds,ax
mov bx,0
mov cx,8
s2:mov ax,es:[bx]
add [bx],ax
add bx,2
loop s2
mov ax,4c00h
int 21h
code ends
end start
作者: angel_kong 发布时间: 2011-03-12
C/C++ code
mov ax,a mov ds,ax mov ax,0 mov bx,0 mov cx,8 s: mov al,[bx] add al,[bx+8] mov byte ptr [bx+16],al inc bx loop s
作者: masmaster 发布时间: 2011-03-12
调试了很久,不知道逻辑上哪里有问题
题目是:将第一段数据和第二段数据逐个相加并依次存进第C段中
Assembly code
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
c segment
db 0,0,0,0,0,0,0,0
c end……
你写的其中 开头就有 cs:code..说明寄存器cs用做储存程序的段地址..你没用定义数据区的地址咋表示~
作者: angel_kong 发布时间: 2011-03-12
数据段里定义的是字节,三个段相差是8个字节而不是16个字节。
C/C++ code
mov ax,a
mov ds,ax
mov ax,0
mov bx,0
mov cx,8
s:
mov al,[bx]
add al,[bx+8]
mov byte ptr [bx+16],al
inc bx
……
作者: A328240784 发布时间: 2011-03-12
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
c segment
db 0,0,0,0,0,0,0,0
c ends
cod……
作者: A328240784 发布时间: 2011-03-12
引用楼主 a328240784 的回复:
调试了很久,不知道逻辑上哪里有问题
题目是:将第一段数据和第二段数据逐个相加并依次存进第C段中
Assembly code
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
c segment
db 0,0……
作者: A328240784 发布时间: 2011-03-12
引用 2 楼 masmaster 的回复:
数据段里定义的是字节,三个段相差是8个字节而不是16个字节。
C/C++ code
mov ax,a
mov ds,ax
mov ax,0
mov bx,0
mov cx,8
s:
mov al,[bx]
add al,[bx+8]
mov byte ptr [bx+16],al
inc bx
……
它不是一个段一个段的吗……
abc三个连续的段, 你可以看做一个整体的段呀!
作者: masmaster 发布时间: 2011-03-12
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28