Assembly language 实验4
本帖最后由 匿名 于 2015-8-30 16:24 编辑各位同学大家好哈,我到了第五章实验四卡到了。请大家帮忙解释一下代码和问题~
2
3
由于我个人习惯了C,C++所以以下的“;”均用//代替
assume cs:code
code segment
mov ax, code ;或mov ax, cs//code是一个标记翻译的时候翻译成一个地址,而前面又cs:code因此 cs和code指向了同一个地址,把哪个地址给通过ax给ds都是一样的
mov ds,ax //通过ax给ds指明数据段的段地址
mov ax,0020h
mov es,ax //上面两句就是通过ax作为跳板向es传送值0020h
mov bx,0 //将bs置0因为要用它作为偏移 地址
mov cx, 18h ;或mov cx, 17h ;或sub cx,5 //cxloop的好基友执行循环18h次
s: mov al, //将ds:【bx】里的值给al传送1个字节
mov es:,al 再将al的值给进附加段里边(这里附加段为0020h)
inc bx //bx+1 由于它是bx的内容在这里作为一个偏移地址因此它加一个就是挪动动一个内存单元
loop s
mov ax,4c00h
int 21h
code ends
end
这里就是将代码段的内容当数据来用。对代码段的数据进行传送到0020h这个内存单元。 代码呢,在哪 Mr蛋蛋o0 发表于 2013-7-22 10:58 static/image/common/back.gif
代码呢,在哪
好了。求解。 Crazy迷恋. 发表于 2013-7-22 12:18 static/image/common/back.gif
由于我个人习惯了C,C++所以以下的“;”均用//代替
assume cs:code
你好,还有其它两个呢。求解。 被你蛊惑的心丶 发表于 2013-7-22 12:35 static/image/common/back.gif
你好,还有其它两个呢。求解。
{:5_96:}我找找~~~~~~~ 被你蛊惑的心丶 发表于 2013-7-22 12:35 static/image/common/back.gif
你好,还有其它两个呢。求解。
mov ax,20h
mov ds,ax//老规矩~~通过ax做桥梁 向ds数据段寄存器赋值也就是说它存储的数据段地址是20h
mov bx,0//要做偏移地址用,从0开始因此将它为0
mov cx,40h ;或mov cx,64//这后面一句忽悠人的~~为什么这么说呢40h的十进制就是6464的十进制就是40h
s: mov ,bl//将bx的低8位给传送到ds:【bx】中
inc bx //增加1 为1的时候 其他时候自己可以推算 ax 0000000000000001 al00000001
loop s
mov ax,4c00h
int 21h
就贴第二个吧~~~第一个用的是栈的一个方法来实现~~~~语法上都是一样的看过这两个 第一个语法上应该没有什么问题~~~要读懂这些题呢主要还是心中的一个逻辑~~~它是利用了什么方式去达到这样一个目的的。 Crazy迷恋. 发表于 2013-7-22 13:13 static/image/common/back.gif
mov ax,20h
mov ds,ax//老规矩~~通过ax做桥梁 向ds数据段寄存器赋值也就是说它存储的数据段地址是 ...
好的。很谢谢你。 好了。求解。 好了。求解。
这个解释很明白,点赞
页:
[1]