Помогите с программированием на assembler #2

Everything you can't fit into other forums
  • да елки, ну не работает and ax, return
    чтобы не зациклилось можно сделать без дополнительной метки:
    mov ax, 4c00h
    int 21h
    (это там, где надо прервать выполнение программы)
    _____________________

    Вроде все сделал. Надеюсь с and ax, offset return прокатит. Осталось только собственный стек сделать
  • Gargo wrote:да елки, ну не работает and ax, return
    чтобы не зациклилось можно сделать без дополнительной метки:
    mov ax, 4c00h
    int 21h
    (это там, где надо прервать выполнение программы)
    _____________________

    Вроде все сделал. Надеюсь с and ax, offset return прокатит. Осталось только собственный стек сделать
    Так ты под ДОС'ом кодиш чтоли? Под FASM'ом всё отлично компилится.
    Gargo в предыдущем сообщении wrote: использую tasm
    А чем тебя FASM не устраевает?
  • Gargo
    У fasm и TASM/MASM есть отличия, в документации все подробно описано.
    У masm/tasm and ax,return означает выполнить операцию со словом(word) начиная с адреса return. Т.е. оп коды, размером в 2 байта расположенные от метки return. В фасм аналогичная конструкция имело бы запись вида and ax,word [return]. Для masm|tasm нужно пользоваться спец словом offset. Правильная команда and ax,offset return.

    Для fasm запись and ax,return означает выполнить логическую операцию с адресом метки return, а не с ее содержимым. Вот по этому под fasm все прекрасно работает, и компилируется, а под masm/tasm у тебя ничего не получается.

    Лучше использовать FASM. Т.к. все примеры, которые приводятся тут написаны для сборки FASM'ом.
  • Пасиб всем. Таки сдал. Интересно, что преподавателю прога показалась какой-то сложной, хотя у меня кода в 2-3 меньше чем у тех, кто сдавал раньше.
  • Who is online

    Users browsing this forum: Bing [Bot] and 12 guests