computer007 发表于 2011-3-30 16:40:13

实验4不懂

本帖最后由 loop 于 2011-4-29 22:44 编辑


题目说传送0至63的数据
为什么cx=40h呢?而不是63h呢?

zzyital 发表于 2011-3-30 17:25:01

我来给你解答下吧!
题目说的0-63,有多少个数据?
64个,对吧!
所以应该LOOP 64次
而64转换成16进制,就是40H了!
P.S 你说的63H,转换成十进制就是99了。。。
切忌要转换!

楼主 我进度和你一样今天也该写实验4了嘿嘿既然你说了我就刚好做了一下

希望解答让你满意

核动力 发表于 2011-4-1 09:18:28

这样 写行吗

assume cs:code
code segment
    mov bx,0
    mov ax,0020h
    mov ds,ax
   mov cx,40h
s:mov ,bx
   inc bx
   loop s
       
mov ax,4c00h
int 21h
       
code ends
end

zzyital 发表于 2011-4-1 10:47:04

恩 经过上机测试,确认你这个无误 你这样精简了代码同时你也抓住了BX作为变量和寄存器地址的要点:它们递增都相同

我个人觉得 你这个代码简练很多!

优化不错!

不过看看小甲鱼老师有什么评价了吧

776051771 发表于 2011-4-29 22:28:58

回复 核动力 的帖子

你这个里面有一句、、不妥吧、、mov ,bx、、、bx是一个16位的寄存器、、而应该是一个字节吧、、

tebi 发表于 2011-5-13 21:05:22

从0——63共有64个数据,转化为16进制,因为masm中默认的是16进制,这样cx=40h,加64次。

CHWEI陈宏伟 发表于 2017-5-30 16:47:57

MOV AX,0
    MOV DS,AX
   
    MOV BX,200h
    ;MOV AL,0
           MOV CX,64
S:
        MOV ,AL
        INC AL
        INC BX
        LOOP S       
   
    ;此处输入代码段代码
    MOV AH,4CH
    INT 21H

求大脚解答一下,为什么我多了一行,刚刚开始学习汇编
页: [1]
查看完整版本: 实验4不懂