. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->更灵活的定位内存地址的方法
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  关于实验六的问题 检错  [待解决] 回复[ 7次 ]   点击[ 421次 ]  
xunlong
[帖 主]   [ 发表时间:2011-05-19 18:47 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-03-31 14:37
assume cs:codesg,ss:stacksg,ds:datasg
stacksg: segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. dispaly      '
db '2. brows        '
db '3. replace      '
db '4. modify       '
datasg ends
codesg sement
start: mov ax,stacksg
       mov ss,ax
       mov sp,16
       mov ax,datasg
       mov ds,ax
       mov bx,0
       mov cx,4
    s0:mov push cx
       mov ax,0
       mov cx,4
       mov si,0
    s :mov al,[bx+si+3]
       and al,11011111b
       mov [bx+si+3],al
       inc si
       loop s
       add bx,16
       pop cx
       loop s0
       mov ax,4c00h
       int 21h
codesg ends
end start
betterpursuel
[第1楼]   [ 回复时间:2011-05-23 19:41 ]   [引用]   [回复]   [ top ] 
荣誉值:8
信誉值:0
注册日期:2010-11-07 17:01
stacksg: segment
codesg sement
mov push cx
一共有以上三处错误,下面是正确的程序,望楼主加强自己的调试能力,要细心点,首先要保证自己的大的框架是正确的。

assume cs:codesg,ss:stacksg,ds:datasg

stacksg  segment   ; stacksg: segment
  dw 0,0,0,0,0,0,0,0
stacksg ends

datasg segment
db '1. dispaly      '
db '2. brows        '
db '3. replace      '
db '4. modify       '
datasg ends

codesg segment     ;  codesg sement
start: mov ax,stacksg
       mov ss,ax
       mov sp,16
       mov ax,datasg
       mov ds,ax

       mov bx,0
       mov cx,4
    s0:push cx    ;mov push cx
       mov ax,0
       mov cx,4
       mov si,0
    s :mov al,[bx+si+3]
       and al,11011111b
       mov [bx+si+3],al
       inc si
       loop s
       add bx,16
       pop cx
       loop s0

       mov ax,4c00h
       int 21h
codesg ends
end start
xunlong
[第2楼]   [ 回复时间:2011-05-26 21:17 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-03-31 14:37
领教
betterpursuel
[第3楼]   [ 回复时间:2011-05-26 22:43 ]   [引用]   [回复]   [ top ] 
荣誉值:8
信誉值:0
注册日期:2010-11-07 17:01
继续努力
a2163923
[第4楼]   [ 回复时间:2011-06-22 07:59 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-06-23 09:27
mov ax,0   请问这句有必要写吗??个人觉得不必要,新手,请赐教
nkyboy
[第5楼]   [ 回复时间:2011-07-08 17:50 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-06-30 21:52
回复:[第4楼]
------------------
可以不用写这句。(新手观点,不太清楚会不会有问题,如有不对,请指出)
因为本例中用不着AX寄存器,而al只是暂时用来与运算,把第五位换成零(换成大写)
所以可以不用初始化AX。
qingpengchen2011
[第6楼]   [ 回复时间:2011-07-12 23:27 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-07-06 20:24
同意mov ax,0不必要。 LZ没有编译器么- -。太囧了。。
chinatree
[第7楼]   [ 回复时间:2011-07-13 01:23 ]   [引用]   [回复]   [ top ] 
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
请问楼主,mov al,[bx+si+3]是什么,为什么要加3呢?还有下面的add bx,16 为什么要加22呢,怎么算出来的,我看每句字符串的字母不一样多呀
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved