. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->[bx]和loop指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  我用汇编语言写了一个小程序,请大家找错!  [待解决] 回复[ 6次 ]   点击[ 567次 ]  
ddd68
[帖 主]   [ 发表时间:2013-03-11 19:31 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-03-10 12:38
assume cs:code
code segment
mov ax,0020h
mov es,ax
mov bx,0
s:mov al,cs:[bx]
mov mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h

编译时显示有1 warning errors
          2 severe errors
jjjjjj1082
[第1楼]   [ 回复时间:2013-03-16 22:41 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-03-16 22:40
assume cs:code 
code segment 
mov ax,0020h 
mov es,ax 
mov bx,0 
s:mov al,cs:[bx] 
mov es:[bx],al 
inc bx 
loop s 
mov ax,4c00h 
int 21h
code ends
end
你对比下
hide2may
[第2楼]   [ 回复时间:2013-04-05 23:15 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-09-11 22:46
沒有設定 cx 的值,豈不是變成無限迴圈嗎?
lonelyhover
[第3楼]   [ 回复时间:2013-04-09 13:35 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-07-18 20:29
对ES的0020H段进行写操作,可是你确定那个地址允许写操作?
benbenfei123
[第4楼]   [ 回复时间:2013-07-16 18:35 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-07-14 15:44
回复:[第3楼]
------------------
那段空间是可以的,安全空间0:200h~~0:2ffh
aminggdwh
[第5楼]   [ 回复时间:2014-10-18 08:35 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2014-09-20 15:47
回复:[第2楼]
------------------
在用debug调试时cx是有值的,是程序的长度。p103
kelamoyujuzhen
[第6楼]   [ 回复时间:2015-01-13 19:53 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2015-01-04 21:38
assume cs:code 
code segment 
        mov ax,0020h 
        mov es,ax 
        mov bx,0         
S:        mov al,cs:[bx] 
        mov es:[bx],al 
        inc bx 
        loop S 
        mov ax,4c00h 
        int 21h  
code ends 
end 
cx值是不需要设的,debug时候默认是程序的长度。安全空间0:200h~~0:2ffh,也没有问题。这段代码经编译、链接、debug都没有问题。楼主找这么改就行啦。这段代码意思就是:在20:0  ~  20:16这块区域用代码段cs:0  ~  CS:16填充。也就是把代码段全部内容复制到20:0  ~  20:16这块区域(包括了mov ax,4c00h ;int 21h  这2句话)
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved