wyuri
发表于 2017-1-18 12:21:18
人造人 发表于 2017-1-17 14:47
问题1:
因为在C中字符串以0结尾,汇编中也默认了
新年快乐^_^
还有问题要问您^_^
第十七章
wyuri
发表于 2017-1-18 12:41:38
本帖最后由 wyuri 于 2017-1-18 12:47 编辑
您看下面
wyuri
发表于 2017-1-18 12:47:03
人造人 发表于 2017-1-17 14:47
问题1:
因为在C中字符串以0结尾,汇编中也默认了
您没理解我的意思,首先我最后一个放零了ag180 db '0',0。如果他是输入一个度数显示一个sin值,那么add si,2是多余的,(因为如果是输入一次显示一个,那直接显示在 es: 里就得了)。如果是分别依次显示在显示区里那么add si,2不多余,但是ag0ad30 ag60 ag90 ag120 ag150 后分别放零是多余的,(因为显示一个度数就会退出),并且把mov ah,0改为mov ax,0,因为如果不改的话,al的值不确保是0。如果是输入一个度数显示一个sin值可以用mov ah,0。这是我的理解,其实有好多问题,可能我说的不够严谨,您都没能理解我的意思。
还有我没学过有关计算机的任何书,王爽汇编是我摸的第一本有关计算机的书,什么C语言我还没来得及学呢。所以您用C语言给我讲,我就更懵圈了,^_^碰上我这样的学生真是难为您了。
人造人
发表于 2017-1-18 13:12:22
wyuri 发表于 2017-1-18 12:21
新年快乐^_^
还有问题要问您^_^
第十七章
这个程序没有用到扫描码,覆盖就覆盖了,没事
人造人
发表于 2017-1-18 13:19:41
wyuri 发表于 2017-1-17 14:05
你好,新年快了
还有问题请教您
王爽汇编第十六章
贴一下这个程序,我帮你调试,贴一个图片,我还得抄代码,直接复制过来就好了^_^
人造人
发表于 2017-1-18 13:20:41
wyuri 发表于 2017-1-18 12:47
您没理解我的意思,首先我最后一个放零了ag180 db '0',0。如果他是输入一个度数显示一个sin值 ...
我忘了你不懂C语言,抱歉
wyuri
发表于 2017-3-17 14:06:20
人造人 发表于 2017-1-18 13:20
我忘了你不懂C语言,抱歉
你好,好久不见,拜个晚年。嘿嘿我又来给你添麻烦了
wyuri
发表于 2017-3-17 14:07:41
人造人 发表于 2017-1-18 13:20
我忘了你不懂C语言,抱歉
由于过年要有自己的事处理,所以一直没有看书,现在打算再从温习一遍。所以还要继续麻烦你,辛苦了
人造人
发表于 2017-3-17 16:31:18
wyuri 发表于 2017-3-17 14:06
你好,好久不见,拜个晚年。嘿嘿我又来给你添麻烦了
从理论上讲,的确可行,
但从现实来说,要如何把程序直接写到0000:0200?
^_^
wyuri
发表于 2017-3-20 18:27:48
本帖最后由 wyuri 于 2017-3-20 19:32 编辑
人造人 发表于 2017-3-17 16:31
从理论上讲,的确可行,
但从现实来说,要如何把程序直接写到0000:0200?
^_^
在debug里
r cs
cs
:20
r ip
ip
:0
a
0020:0000 mov~~程序
或
a 0020:0000
程序
可能我还是没学透,这样可以么
实际上这样程序有没有安装在0000:0200里?
我有点小糊涂,不知道安没安进去
wyuri
发表于 2017-3-20 18:42:28
本帖最后由 wyuri 于 2017-3-20 19:01 编辑
wyuri 发表于 2017-3-20 18:27
在debug里
r cs
cs
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
s1: 程序
s2:mov cx,(offset s2-offset s1)/2
s:mov ax,
mov es:,ax
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end start
这个算不算,现在越来越觉得迷糊,按理说越证明应该越清晰,我现在越证明自己的观点,越糊涂。
人造人
发表于 2017-3-20 22:15:15
本帖最后由 人造人 于 2017-3-20 22:18 编辑
wyuri 发表于 2017-3-20 18:27
在debug里
r cs
cs
那现在又需要引入另一个问题了,“直接”是什么意思?
就算是在debug中
r cs
cs
:20
r ip
ip
:0
a
0020:0000 mov~~程序
或
a 0020:0000
程序
这样也“不是直接”写入0000:0200(在没有搞清楚“直接”是什么意思之前,说“不是直接”没有意义,但是在这里我想不出更好的词代替^_^)
debug需要将你写的文本字符串转换为机器指令,再把转换后的机器指令写入0000:0200
这样还算是“直接”吗?
那“直接”是什么意思?
再说了,你自己可以这样试试,debug有好多的不方便。
“直接”用debug写,和通过另一个软件来“安装”,似乎都是同一个意思
如果你认为用debug这样写就是“直接”,那这样的确可以,但是却是不可行的做法,因为debug有好多的限制,你如果有兴趣,可以多写一些这样的程序,你就会发现这样的限制
说了半天还是没有说明白“直接”是什么意思^_^
wyuri
发表于 2017-3-22 15:45:48
人造人 发表于 2017-3-20 22:15
那现在又需要引入另一个问题了,“直接”是什么意思?
就算是在debug中
嗯,谢谢,真想问点有质量的问题,不过我太小白了,让你总回答我幼稚的问题来降低你智商。
对了,我还有个非常基础的问题,我用64位的电脑,运行不了程序,用32位没有报错但是不知道有没有运行,反正没有看到结果。我做的是王爽汇编,第九章最后面的实验题,用的小甲鱼的程序运行的。
人造人
发表于 2017-3-22 16:36:06
wyuri 发表于 2017-3-22 15:45
嗯,谢谢,真想问点有质量的问题,不过我太小白了,让你总回答我幼稚的问题来降低你智商。
对了,我还有 ...
玩8086汇编,最后在16位实模式下玩
装一个虚拟机,在16位实模式下玩
^_^
wyuri
发表于 2017-3-22 16:40:48
人造人 发表于 2017-3-22 16:36
玩8086汇编,最后在16位实模式下玩
装一个虚拟机,在16位实模式下玩
^_^
哈哈哈,我知道了,用的是debug谢谢了, 辛苦了
wyuri
发表于 2017-3-22 16:55:19
人造人 发表于 2017-3-22 16:36
玩8086汇编,最后在16位实模式下玩
装一个虚拟机,在16位实模式下玩
^_^
不行啊,我的弄不出来我自己写了个程序,我不知道能不能显示出来,自己写的东西检查不出来错误,我能不能麻烦您帮我测试一下
第九章实验题
assume cs:code,ds:date,ss:stack
date segment
db 'welcome to masm!'
db 2,24h,71h
date ends
stack segment
dw 8 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,date
mov ds,ax
mov ax,0b800h
mov es,ax
mov bx,0
mov bp,16
mov cx,3
s :push cx
mov si,720h
mov di,0
mov cx,16
s1:mov al,
mov es:,al
mov ah,ds:
mov es:1,ah
inc di
add si,2
loop s1
add bx,160
inc bp
pop cx
loop s
code ends
end start
人造人
发表于 2017-3-22 19:20:03
wyuri 发表于 2017-3-22 16:55
不行啊,我的弄不出来我自己写了个程序,我不知道能不能显示出来,自己写的东西检查不出来错误,我能不 ...
assume cs:code,ds:date,ss:stack
date segment
db 'welcome to masm!'
db 2,24h,71h
date ends
stack segment
dw 8 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,date
mov ds,ax
mov ax,0b800h
mov es,ax
mov bx,0
mov bp,16
mov cx,3
s :
push cx
mov si,720h
mov di,0
mov cx,16
s1:
mov al,
mov es:,al
mov ah,ds:
mov es:1,ah
inc di
add si,2
loop s1
add bx,160
inc bp
pop cx
loop s
mov ax, 4c00h
int 21h
code ends
end start
^_^
wyuri
发表于 2017-3-23 22:42:24
人造人 发表于 2017-3-22 19:20
assume cs:code,ds:date,ss:stack
date segment
db 'welcome to masm!'
^_^谢谢呵呵呵,最主要的
您能帮我看看这个么
我应该用什么怎么操作才能看到结果
做了一下改动,不知道寄存器有没有冲突,所以让您帮我操作一下看能不能显示
assume cs:code,ds:date,ss:stack
date segment
db 'welcome to masm!'
db 2,24h,71h
date ends
stack segment
dw 8 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,date
mov ds,ax
mov ax,0b800h
mov es,ax
mov bx,0
mov bp,16
mov cx,3
s :push cx
mov si,bx
mov di,0
mov cx,16
s1:mov al,
mov es:720h,al
mov ah,ds:
mov es:721h,ah
inc di
add si,2
loop s1
add bx,160
inc bp
pop cx
loop s
mov ax,4c00h
int 21h
code ends
end start
安卓逆向
发表于 2017-3-23 23:06:34
汇编感觉挺重要的
wyuri
发表于 2017-3-24 00:15:54
人造人 发表于 2017-3-22 19:20
assume cs:code,ds:date,ss:stack
date segment
db 'welcome to masm!'
不用了,谢了,知道怎么弄了显示了
页:
1
2
3
4
5
6
[7]
8
9
10
11